先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
<class ‘list’>
[‘apple’, ‘banana’, ‘pen’]
进程已结束,退出代码 0
#### 3.1 如何访问列表
* 通过下标访问
* 下标只能为 [-n, -1] , 分为 [0, n - 1](顺数第几个), 和 [-n, -1] 倒数第几个
* p.s : 列表中的每一个元素都可以重新赋值,可以正常参与运算
a = [‘apple’, ‘banana’, ‘pen’]
print(a[0])
print(a[1])
print(a[-1])
输出:
apple
banana
pen
进程已结束,退出代码 0
#### 3.2 如何给列表添加元素
##### 1、在末尾添加单个元素(重要):
**a.append(x)** 为列表a末尾添加x元素
a = [‘apple’, ‘banana’, ‘pen’]
a.append(‘Hello’)
print("a = ",a)
输出:
a = [‘apple’, ‘banana’, ‘pen’, ‘Hello’]
进程已结束,退出代码 0
##### 2、在末尾添加多个元素:
**a.extend(x)** : 列表a末尾添加x,x为可迭代对象,包括列表、元组、字符串等,**不能是单个数字**
a = [‘apple’, ‘banana’, ‘pen’]
a.extend([1,2,3,‘a’])
print("a = ",a)
输出:
a = [‘apple’, ‘banana’, ‘pen’, 1, 2, 3, ‘a’]
进程已结束,退出代码 0
##### 3、在中间插入元素:
**a.insert(idx, x)** : 列表a在下标 idx 位置插入元素x,原来下标大于等于 idx 的元素往右移动一个位置。
a = [‘apple’, ‘banana’, ‘pen’]
a.insert(0, ‘0’)
a.insert(2, “2”)
print("a = ",a)
输出:
a = [‘0’, ‘apple’, ‘2’, ‘banana’, ‘pen’]
进程已结束,退出代码 0
##### 4、删除元素:
* 利用 del 删除列表中的元素: **del a[idx]** : 删除列表a中下标为 idx 的元素
* 利用 pop 删除列表中的元素:(1)**a.pop(idx)** :删除列表a下标为idx的元素 (2) **a.pop()** 删除列表a中的最后一个元素
* 区别: del 删除没有返回值, pop 删除返回的是删除的那个元素
利用del删除元素
a = [‘apple’, ‘banana’, ‘pen’]
del a[0]
print("a = ",a)
利用pop删除元素
a = [‘apple’, ‘banana’, ‘pen’]
del_a = a.pop(1)
print("a = ",a)
print(“删除的元素为:”, del_a)
pop 不加参数,默认删除末尾元素
a = [‘apple’, ‘banana’, ‘pen’]
del_a = a.pop()
print("a = ",a)
print(“删除的元素为:”, del_a)
输出:
a = [‘banana’, ‘pen’]
a = [‘apple’, ‘pen’]
删除的元素为: banana
a = [‘apple’, ‘banana’]
删除的元素为: pen
进程已结束,退出代码 0
##### 5、查找元素
* **a.count(x)**: 计算 x 在 a 中出现的次数,如果未出现则为0,否则为出现次数
* **a.index(x, start, stop)**: 计算元素 x 在列表下标 [start, stop) 中第一次出现的位置;(1)要保证 x 必须在区间 [start, stop) 中存在,否则报错;(2)start, end 不赋值,默认为在整个列表中查找;(3)只赋值 start , stop 默认为列表长度
a = [‘apple’, ‘banana’, ‘cat’, ‘pen’, ‘cat’]
print(a.count(‘apple’))
在整个列表中查找第一个 ‘cat’
print(a.index(‘cat’))
从下标3开始查找第一个 ‘cat’
print(a.index(‘cat’, 3))
输出:
1
2
4
进程已结束,退出代码 0
##### 6、翻转列表
* **a.reverse()** : 列表 a 进行翻转 , 调用两次变回原列表
a = [1, 2, 3, 4, 5]
a.reverse()
print('a = ', a)
a.reverse()
print('a = ', a)
输出:
a = [5, 4, 3, 2, 1]
a = [1, 2, 3, 4, 5]
进程已结束,退出代码 0
##### 7、求出列表长度
* **len(a)**:求出列表a的长度
a = [1, 2, 3, 4, 5]
输出a的长度
print(len(a))
输出:
5
进程已结束,退出代码 0
#### 3.3 遍历整个列表
* 利用for循环遍历列表
a = [‘apple’, ‘pen’, ‘hello’]
for i in a:
print(i)
输出:
apple
pen
hello
进程已结束,退出代码 0
* 利用for循环遍历列表,同时获取下标
* 相关函数: **enumerate(a, start = 0)** : 将列表a每个元素和对应的下标组合为一个带索引的序列,下标默认从0开始,遍历的时候同步遍历下标和值
a = [‘apple’, ‘pen’, ‘hello’]
for idx, i in enumerate(a):
print(idx, i)
0 apple
1 pen
2 hello
进程已结束,退出代码 0
#### 3.4 列表操作符
* ‘**+**’ : 连接两个列表
* ‘**a\*x**’ : a 是list, x 是int, 构成一个新列表,其内容为a复制x次
a = [0, 1, 2, 3, 4, 5]
print("a = ", a)
b = [‘a’, ‘b’, ‘c’]
print("b = ", b)
print(a + b)
print(a * 3)
输出:
a = [0, 1, 2, 3, 4, 5]
b = [‘a’, ‘b’, ‘c’]
[0, 1, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’]
[0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5]
进程已结束,退出代码 0
#### 3.5 内置函数(常用的)
* sum(a):求和
* max(a):求列表a中的最大值
* min(a):求列表a中的最小值
a = [0, 1, 2, 3, 4, 5]
print("max = ", max(a))
print("min = ", min(a))
print("sum = ", sum(a))
输出:
max = 5
min = 0
sum = 15
进程已结束,退出代码 0
#### 3.6 列表解析式(重点操作)
* 列表解析式: [expression **for** member **in** iterable]
* 对于可迭代对象 iterable 的 每个元素 member, 都执行 expression 表达式构成的新的列表
* 下面代码对 列表 [0,1,2] 中的每个对象都执行了 x 二次方的运算,构成了一个新的列表
a = [x**2 for x in range(3)]
print(a)
输出:
[0, 1, 4]
进程已结束,退出代码 0
p.s: range()函数的细节会放在for循环部分进行说明
* 列表解析式:可以基于已有的列表筛选并生成相关的新的列表
* [expression **for** member **in** iterable if conditional ]
* 对于可迭代对象 iterable 的每个元素 member ,如果满足条件 conditional 才执行 expression 构成新的列表
* 下面代码表示 对于列表[0,1,2,3,4,5,6,7,8,9,10],需要满足x为偶数,才能加入新列表,新列表元素为x的平方
a = [x**2 for x in range(11) if x % 2 == 0]
print(a)
输出:
[0, 4, 16, 36, 64, 100]
进程已结束,退出代码 0
#### 3.7 列表切片
a = [1,‘apple’,‘banana’, 2, 3, 4, 5]
切片[2:4], 步长为1
b = a[2:4]
print(b)
切片[0,n], 步长为2
c = a[::2]
print©
前3个元素
d = a[:3]
print(d)
后3个元素
e = a[-3:]
print(e)
输出:
[‘banana’, 2]
[1, ‘banana’, 3, 5]
[1, ‘apple’, ‘banana’]
[3, 4, 5]
进程已结束,退出代码 0
#### 3.8 复制列表
* 先明确一个概念,列表的赋值不等同于复制,列表的赋值只是引用,相当于两个变量名代表同一个列表
a = [1,‘apple’,‘banana’, 2, 3, 4, 5]
b = a
b[0] = “hello”
print("b = ", b)
print("a = ", a)
输出:
b = [‘hello’, ‘apple’, ‘banana’, 2, 3, 4, 5]
a = [‘hello’, ‘apple’, ‘banana’, 2, 3, 4, 5]
进程已结束,退出代码 0
* 正确的复制方法:
* (1)利用切片: **b = a[:]**
* (2)利用 copy函数: **b = a.copy()**
a = [1,‘apple’,‘banana’, 2, 3, 4, 5]
b = a.copy()
c = a[:]
print("a = ", a)
print("b = ", b)
print("c = ", c)
输出:
a = [1, ‘apple’, ‘banana’, 2, 3, 4, 5]
b = [1, ‘apple’, ‘banana’, 2, 3, 4, 5]
c = [1, ‘apple’, ‘banana’, 2, 3, 4, 5]
进程已结束,退出代码 0
### 4.字典的相关操作
#### 4.1 创建字典
* python 中用 **{ }** 表示字典,可以使用 { } 创建一个字典
* 字典中的 key 和 value 之间用冒号 : 分隔,元素之间用 逗号, 分隔
* 字典的 key 只能为数字、字符串、元组,大多数情况使用字符串作为key
* value的类型没有限制
创建了一个空字典
a = {}
print("type(a) = ", type(a))
print("a = ", a)
创建字典
a = {‘a’:123, ‘b’:456, 0:789}
print("type(a) = ", type(a))
print("a = ", a)
输出:
type(a) = <class ‘dict’>
a = {}
type(a) = <class ‘dict’>
a = {‘a’: 123, ‘b’: 456, 0: 789}
进程已结束,退出代码 0
* 使用 **dict** 创建字典
* 此时 key 只能是字符串
创建了一个空字典
a = dict()
print("type(a) = ", type(a))
print("a = ", a)
创建字典
a = dict(a=123, b=456, c=789)
print("type(a) = ", type(a))
print("a = ", a)
输出:
type(a) = <class ‘dict’>
a = {}
type(a) = <class ‘dict’>
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
进程已结束,退出代码 0
* 也可以传入一个列表或者元组,每个元素也是一个包含两个元素的列表或者元组
* 则此时可以按照第一个元素作为 **key**,第二个元素作为 **value**
传入列表
a = dict([[‘a’,123],[‘b’,456],[‘c’,789]])
print("type(a) = ", type(a))
print("a = ", a)
传入元组
a = dict([(‘a’,123), (‘b’,456), (‘c’,789)])
print("type(a) = ", type(a))
print("a = ", a)
输出:
type(a) = <class ‘dict’>
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
type(a) = <class ‘dict’>
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
进程已结束,退出代码 0
* **zip()函数**:把多个序列相同下标的元素组装成**元组**,结果是一个可迭代对象
* 结果可以转换成list,但是首次转换后迭代器就为空
keys = [‘a’, ‘b’, ‘c’]
value = [123, 456, 789]
zipped = zip(keys, value)
print(zipped)
print(list(zipped))
首次转换后迭代器为空
print(list(zipped))
输出:
<zip object at 0x0000014E3F16C0C0>
[(‘a’, 123), (‘b’, 456), (‘c’, 789)]
[]
进程已结束,退出代码 0
* \*\*具体应用:\*\*假设有一个 key 列表和 value 列表,可以利用 \*\*list(zip(key,value))\*\*将二者组装好,作为 dict 的初始化
keys = [‘a’, ‘b’, ‘c’]
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a)
输出:
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
进程已结束,退出代码 0
* 先前所有的创建字典的策略,都要满足:
* 1.Key不能重复、Value无限制
* 2.Key必须是字符串、数字、元组不可变的类型
#### 4.2 访问字典
* python的字典通过 key 来访问 value,把 key 看作下标即可
* a[x]: a 为 dict、x 为 a 中的一个 key,必须存在否则会报错
keys = [‘a’, ‘b’, ‘c’]
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a)
print(a[‘a’], a[‘b’])
若是不存在则会报错
print(a[‘d’])
输出:
Traceback (most recent call last):
File “E:\Master\SKILL\python_ 蓝桥杯\test.py”, line 8, in
print(a[‘d’])
KeyError: ‘d’
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
123 456
* 如果并不知道 x 是否在字典的 key 中,需要查询字典中 x 对应的 value,可以使用 get 的方法
* a.get(x, value = None): a 表示字典, x 表示查询的 key, value 表示默认值
* 如果 x 在字典的 key 中,则上述的结果为 a[x], 如果不存在,上述的结果为 value
keys = [‘a’, ‘b’, ‘c’]
value = [123, 456, 789]
a = dict(list(zip(keys, value)))
print("a = ", a)
'a’是key,则输出a[‘a’]
print(a.get(‘a’,‘XXX’))
'd’不是key,则输出给定默认值XXX
print(a.get(‘d’,‘XXX’))
‘e’ 不是key,没有设定默认值,则此时为None
print(a.get(‘e’))
输出:
a = {‘a’: 123, ‘b’: 456, ‘c’: 789}
123
XXX
None
进程已结束,退出代码 0
* 字典通过直接利用 key 可以访问对应的 value ,类似添加元素、修改元素也是直接利用 key 和 value 就能进行添加或者更新
a = {}
print("a = ", a)
添加元素
a[‘分数’] = 80
print("a = ", a)
修改元素
a[‘分数’] = 85
print("a = ", a)
输出:
a = {}
a = {‘分数’: 80}
a = {‘分数’: 85}
进程已结束,退出代码 0
#### 4.3 添加、修改和删除元素
* 字典通过直接利用 key 可以访问对应的 value,类似的,添加元素、修改元素也是直接利用 key 和 value 就能进行添加或者更新
* 删除字典中的键值对,可以用python本身的删除语法 del
* 也可用 pop 删除
a = {}
添加元素
a[‘小蓝’] = 15
print("a = ", a)
添加元素
a[‘小红’] = 16
print("a = ", a)
修改元素
a[‘小蓝’] = 16
print("a = ", a)
删除元素
del a[‘小蓝’]
print("a = ", a)
pop
a.pop(‘小红’)
print("a = ", a)
输出:
a = {‘小蓝’: 15}
a = {‘小蓝’: 15, ‘小红’: 16}
a = {‘小蓝’: 16, ‘小红’: 16}
a = {‘小红’: 16}
a = {}
进程已结束,退出代码 0
#### 4.4 遍历字典
* 与 list 一样,直接利用 for 语句就可以遍历字典
x 是循环变量,a 是字典,此时遍历的是 a 的 key 列表
s = {‘a’:123, ‘b’:456, ‘c’:789}
for x in s:
print(x)
利用 a.keys(), a.values(), a.items, 可以分别循环遍历 key,value、二元组(key,value)
s = {‘a’:123, ‘b’:456, ‘c’:789}
for x in s.keys():
print(x)
for y in s.values():
print(y)
for x, y in s.items():
print(x, y)
输出:
a
b
c
a
b
c
123
456
789
a 123
b 456
c 789
进程已结束,退出代码 0
#### 4.4 判断是否存在元素
* 字典中可以使用 **in、 not in** 判断某元素是否在字典中
* **x in a、x in a.keys()**:判断 x 是否在 a 的 key 中
* **x in a.values(**): 判断 x 是否在 a 的 value中
* **(x, y) in a.items()**: 判断 x 是否在 a 的 key 中,并且对应的 value 为 y
s = {‘a’:123, ‘b’:456, ‘c’:789}
print(‘a’ in s)
print(‘d’ in s.keys())
print(123 in s.values())
print(135 in s.values())
print((‘a’, 123) in s.items())
print((‘b’, 123) in s.items())
输出:
True
False
True
False
True
False
进程已结束,退出代码 0
#### 4.4 合并两个字典
* 字典利用 update 方法可以将另一个字典的 key,value 更新到已有的字典中
* **a.update(b)**:把字典b中的每一个元素放入到a中更新
* 如果b中的key在a中没有,则直接在a中添加一组新的 key-value对
* 如果b中的key在a中有,则直接更新对应的value
s = {‘a’:123, ‘b’:456, ‘c’:789}
t = {‘a’:321, ‘d’:1000}
s.update(t)
print("s = ", s)
print("t = ", t)
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
给大家节省了很多时间。
👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-FGBfsWH8-1713421383538)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!