赞
踩
仅作为个人分享和交流用途,如有不足之处还望专业人士不吝赐教
希望大家通过此教程了解 python,学到一点点东西
做这个事情的初衷
个人自从 2022 年正式入坑 python,当时的需求是数据分析,处理数据需要占用很多的工作时间,促使自己想去开发工具提高数据处理的效率。加上之前就对 python 有所了解,但并未真正实操,得知它有众多好用的库,有很广泛的资源(学习,开发,交流),因此决定入坑。
经过一年多的学习和实践,因为有本职工作,工作也是较忙,所以断断续续在学习和开发。尝试了 30 多个小工具,自己开发了 15,16 个工作使用的工具,有 1,2 个迭代了几轮,目前使用还算 ok。
和身边汽车行业同事交流,有些人也打算学 python,但是迫于学习时间零散,非计算机专业,实操较少,因此经常半途就坚持不下去。
因此打算以自身经历和自己实操的小工具为引子,希望可以帮助大家多多了解 python,试着使用python,给自己工作和生活多一些可能性。
多聊一小段:
自己工作以来及目前所做的行业是传统汽车行业,师傅带徒弟的模式由来已久,约定俗成。自从接触了计算机/编程的圈子,发现这个圈子很宝贵的一点是 open,开源的思维让我明白为啥现在互联网技术可以发展得如此迅速且势不可挡,大家很乐意去分享,避免重复造轮子。
前段时间看了某个 up 对哈佛本科生的采访,了解到美国当代的年轻人并非我们想象中的自私利己,反而他们很乐意去互相帮助沟通,也希望可以为类似传统汽车的小伙伴带来一些有用的东西。
软件和工具安装
python 并不是直接可以用的软件,我们需要找一个可以编辑运行这个语言的工具,**类似于写一本书我们找一个 word 软件,然后在 word 上进行书写,修改,调整格式;**推荐的几款:
Pycharm,vscode,anaconda-具体用哪款大家可以随意选择,1,3 可能相对简单点,建议新手可以选
软件的安装大家自行 B 站/CSDN/百度找,按照推荐程度排序,网上这种资源很多。
安装过程中可能涉及到激活,也可以按照上面的推荐自行搜索
基础知识必备
image
学习了一年多,感觉这部分还是应该早点去学习,所以放在最开始讲; 当然也可以学完之后再回来看,可能感受也会不同
编程是什么?和我们做的其他工作有什么不同
因为大家是非计算机专业人员,虽然之前接触过 C 语言,也只是表面,很多早已忘记;因此重新带大家认识下这个新的工作模式:
此处就是要坚持坚持,还是坚持!
关键点,小技巧
结合上面编程的一些原则提几个小的建议,此部分后面大家也可以不断补充:
只讲基础内容,便于入门,后续修行可以在网上找资料
https://www.liaoxuefeng.com/wiki/1016959663602400,平时查找基础知识经常用到的 重点讲个人常用的一些基础概念
image
image
if…else…最常用的判断语句;
处理多个数据重复操作用 for 循环,还有个 map,lamda 函数也很好用,后面示例讲到在具体说
讲常用库前,多说两句:
python 最厉害的地方就是有好多好多库,各行各业的,怎么理解这个库呢?举个栗子:
小明想要将房子整体从村东头挪动到村西头,这时他考虑需要先要把房子连根拔起,还不能晃动,我们先假设他把房子成功挖出来了;接下来需要找个工具从村东运到村西,还要保持房子别晃动,我们都知道有汽车,卡车,但是没有运这么大房子的车,所以他要自己做一个新的工具。但是他不用重新造发动机,可以从卡车上找到大功率发动机拿过来,然后再找到一套液压稳定装置,找到合适的轮子,然后他需要固定房子,这个时候他有两套方案:
1.按照自己房子的尺寸定制一个固定的架子将房子和支架相连,然后底部也是和房子大小一致的底座
2.制作一个可以调节前后左右高度的活动支架,底部也是可以调节大小的底座
方案 1,2 都能完成任务,但是如果你想让自己做出来的这套工具可以复用,服务他人,方案 2 显然更优。
image
**所以选择合适的库很重要,**将库连接成你需要的东西也很重要,先介绍下个人常用的库:
image
dat 文件(车辆运行记录数据的一种格式)处理之 dat 文件转成 csv
image
第一步
image
任务实现,比较简单,详细地视频课程会讲解
from asammdf import MDF, Signal,
from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtWidgets import QFileDialog from PyQt5 import QtCore, QtGui, QtWidgets
也可能需要其他库,后续再加
image
数据处理
for 循环,先筛选变量,然后再导出。
导出数据
和导入数据类似
python 编程实操时的一些分享,欢迎大家补充!
实用技巧
image
小块功能代码,大家自行尝试
重复元素判定
以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。
def all_unique(lst): return len(lst) == len(set(lst)) x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5] all_unique(x) # False all_unique(y) # True
字符元素组成判定
检查两个字符串的组成元素是不是一样的。
from collections import Counter def anagram(first, second): return Counter(first) == Counter(second) anagram(“abcd3”, “3acdb”) # True
内存占用
下面的代码块可以检查变量 variable 所占用的内存。
import sys variable = 30 print(sys.getsizeof(variable)) # 24
字节占用
下面的代码块可以检查字符串占用的字节数。
def byte_size(string): return(len(string.encode(‘utf-8’))) byte_size(’ ') # 4 byte_size(‘Hello World’) # 11
打印 N 次字符串
该代码块不需要循环语句就能打印 N 次字符串。
n = 2; s =“Programming”; print(s * n);
大写第一个字母
以下代码块会使用 title() 方法,从而大写字符串中每一个单词的首字母。
s = “programming is awesome” print(s.title())
分块
给定具体的大小,定义一个函数以按照这个大小切割列表。
from math import ceil def chunk(lst, size): return list( map(lambda x: lst[x * size:x * size + size], list(range(0, ceil(len(lst) / size))))) chunk([1,2,3,4,5],2)
压缩
这个方法可以将布尔型的值去掉,例如(False,None,0,“”),它使用 filter() 函数。
def compact(lst): return list(filter(bool, lst)) compact([0, 1, False, 2, ‘’, 3, ‘a’, ‘s’, 34])
解包
如下代码段可以将打包好的成对列表解开成两组不同的元组。
array = [[‘a’, ‘b’], [‘c’, ‘d’], [‘e’, ‘f’]] transposed = zip(*array) print(transposed)
链式对比
我们可以在一行代码中使用不同的运算符对比多个不同的元素。
a = 3 print( 2 < a < 8) # True print(1 == a < 2) # False
逗号连接
下面的代码可以将列表连接成单个字符串,且每一个元素间的分隔 方式设置为了逗号。
hobbies = [“basketball”, “football”, “swimming”] print("My hobbies are: " + ", ".join(hobbies))
以下方法将统计字符串中的元音 (‘a’, ‘e’, ‘i’, ‘o’, ‘u’) 的个数,它是通过正则表达式做的。
import re def count_vowels(str): return len(len(re.findall(r’[aeiou]', str, re.IGNORECASE))) count_vowels(‘foobar’) # 3 count_vowels(‘gym’) # 0
13. 首字母小写
如下方法将令给定字符串的第一个字符统一为小写。
def decapitalize(string): return str[:1].lower() + str[1:] decapitalize(‘FooBar’) # ‘fooBar’ decapitalize(‘FooBar’) # ‘fooBar’
14. 展开列表
该方法将通过递归的方式将列表的嵌套展开为单个列表。
def spread(arg): ret = [] for i in arg: if isinstance(i, list): ret.extend(i) else: ret.append(i) return ret def deep_flatten(lst): result = [] result.extend( spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst)))) return result deep_flatten([1, [2], [[3], 4], 5]) # [1,2,3,4,5]
15. 列表的差
该方法将返回第一个列表的元素,其不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。
def difference(a, b): set_a = set(a) set_b = set(b) comparison = set_a.difference(set_b) return list(comparison) difference([1,2,3], [1,2,4]) # [3]
16. 通过函数取差
如下法首先会应用一个给定的函数,然后再返回应用函数后结果有差别的列表元素。
def difference_by(a, b, fn): b = set(map(fn, b)) return [item for item in a if fn(item) not in b] from math import floor difference_by([2.1, 1.2], [2.3, 3.4],floor) # [1.2] difference_by([{ ‘x’: 2 }, { ‘x’: 1 }], [{ ‘x’: 1 }], lambda v : v[‘x’])
以上就是“一名汽车工程师入坑python的学习经验及分享”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。