先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
a = “Hello World!”
b = “WORLD!!”
1、访问下标
print("下标0= ",a[0])
print("下标3= ",a[3])
2、切片
print("a[4:8]= ",a[4:8])
3、len(a)
print("len(a) = ", len(a))
4、连接字符串
print("a + b = ", a + b)
5、存在/不存在
if ‘Hello’ in a:
print(“Yes”)
6、强制转换字符串
c = 5
print(str©)
* 输出结果:
下标0= H
下标3= l
a[4:8]= o Wo
len(a) = 12
a + b = Hello World!WORLD!!
Yes
5
#### 2.2 字符串常用方法
##### 判断篇:
* s.isalnum() 检查字符串中的字符是否都是字母或数
* s.isalpha() 检查字符串中的所有字符是否都是字母
* s.isdigit() 检查字符串是否只包含数字
* s.isupper() 判断字符串是否全为大写
* s.islower() 判断字符串是否全为小写
* s.isspace() 检查字符串中是否只包含空白
* s.isnumeric() 检查字符串中的所有字符是否都是数字字符
标题化判断
print(“Hello World”.istitle())
print(“Hello world”.istitle())
print(‘-’*10)
大小写判断
print(“HELLO”.isupper())
print(“HELLO”.islower())
print(‘-’*10)
数字字母判断
print(“Hello5201314”.isalpha())
print(“Hello5201314”.isalnum())
print(“Hello”.isalpha())
print(‘-’*10)
空白判断
print(" “.isspace())
print(”\t\n\t".isspace())
print(“”.isspace())
##### 输出结果:
True
False
True
False
False
True
True
True
True
False
进程已结束,退出代码 0
##### 转换篇(加粗的为重点掌握):
* title() : “标题化”字符串
* **lower()**: 转换成小写
* **upper()**: 转换成大写
* swapcase():字符串中大写转换为小写,小写转换为大写
* **strip([chars])**:截掉字符串左边的空格或指定字符chars
* rstrip([chars]):截掉字符串右边的空格或指定字符chars
* strip([chars]):调用lstrip([chars])和 rstrip([chars])
* **replace(old, new[,max])**:将字符串中的 old 替换成 new ,如果 max 指定,则替换不超过 max 次
标题化
s = “hello world”
t = s.title()
print("s = ", s)
print(“t = “, t)
print(”-”*10)
转换成小写
s = “HELLO WORLD!”
t = s.upper()
print("s = ", s)
print(“t = “, t)
print(”-”*10)
转换成大写
s = “hello world!”
t = s.lower()
print("s = ", s)
print(“t = “, t)
print(”-”*10)
大小写互换
s = “hello world!”
t = s.title().swapcase()
print("s = ", s)
print(“t = “, t)
print(”-”*10)
删除字符串左边的空格
s = " hello world!"
t = s.lstrip()
print("s = ", s)
print(“t = “, t)
print(”-”*10)
删除字符串左边的多个字符:e,h,空格
s = " hello world!"
t = s.lstrip("eh ")
print("s = ", s)
print(“t = “, t)
print(”-”*10)
替换字符
s = “abcd abcd abcd abcd”
t = s.replace(“a”, “A”)
z = s.replace(‘a’, ‘A’, 2)
print("s = ", s)
print("t = ", t)
print(“z = “, z)
print(”-”*10)
* 输出结果:
s = hello world
t = Hello World
s = HELLO WORLD!
t = HELLO WORLD!
s = hello world!
t = hello world!
s = hello world!
t = hELLO wORLD!
s = hello world!
t = hello world!
s = hello world!
t = llo world!
s = abcd abcd abcd abcd
t = Abcd Abcd Abcd Abcd
z = Abcd Abcd abcd abcd
进程已结束,退出代码 0
##### 查找篇(加粗的为常用):
* **count(str, beg = 0, end = len(string))** :求 str 在字符串中出现次数,如果指定查找范围,则在[beg,end]中查找
* **find(str, beg = 0, end = len(string))** :判断 str 是否在字符串中,如果指定查找范围则在[beg,end]中查找,如果找到的起始下标,不存在返回-1
* rfind(str, beg = 0, end = len(string)):从右往左查找
* index(str, beg = 0, end = len(string)):与 find 相同,只是如果 str 不存在,则抛出异常
* rindex(str,beg = 0, end = len(string)):从右往左查找
* startswith(substr, beg = 0, end = len(string)):判断是否以 substr 开头
* endswith(suffix, beg = 0, end = len(string)):判断是否以 suffix 结尾
##### 2.3 修改字符串的方法:
* 字符串转换成list(由于 python中 字符串本身是不可修改的,转换成list可以进行修改):
直接转换成list:列表的每个元素都是长度为 1 的字符串
s = “Hello World!”
t = list(s)
print(s)
print(t)
利用split()方法对字符串进行分割
str.split(str = “”, num = string.count(str))
str 表示分隔符,默认为空字符,包括空格、换行、指标符等
num – 分割次数,如果设置了这个参数,则最多分割成 num + 1 个字符串。默认为 -1,即分隔所有
s = "My name is Wang Shi Er. "
t = s.split()
print(t)
t = s.split(’ ', 4)
print(t)
t = s.split(‘Wang’)
print(t)
* 输出结果:
Hello World!
[‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ’ ', ‘W’, ‘o’, ‘r’, ‘l’, ‘d’, ‘!’]
[‘My’, ‘name’, ‘is’, ‘Wang’, ‘Shi’, ‘Er.’]
[‘My’, ‘name’, ‘is’, ‘Wang’, 'Shi Er. ']
['My name is ', ’ Shi Er. ']
进程已结束,退出代码 0
###### 2.3.1如何修改字符串?
python中不可以直接在字符串上修改,因为字符串不可修改
可以通过以下方式对字符串进行修改:
* 1、转换成 list 列表、修改后再转换成字符串
* 2、利用切片
* 3、重新赋值
* 4、利用 replace()函数
##### 2.4 format 格式化
python中指出格式化字符串的输出,利用 format 函数来调整字符串的格式
* 其中 **{ }** 表示占位符,format 里面的参数将逐个放入字符串中的占位符(由于 format 的参数要逐个放入占位符中,此时参数的数量必须大于等于占位符的数量)。
name = “王十二”
s = “大家好,我是{}”.format(name)
print(s)
* 输出结果:
大家好,我是王十二
进程已结束,退出代码 0
* python 字符串中{0}、{1} 表示占位符,其中非负整数表示这个位置为 format 中的第几个参数,从0开始计数, {x} 中的 x 不可以大于 format 中的参数数量
name = “王十二”
age = 24
s = “大家好,我是{0},今年{1}岁”.format(name, age)
print(s)
* 输出结果:
大家好,我是王十二,今年24岁
进程已结束,退出代码 0
* { }中可以加入冒号 : ,冒号后面可以控制数字的输出格式,包括宽度,小数点等
* p.s : 下表摘自菜鸟教程
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7811c80c048042ef92556ce78779169c.png)
^ , < , > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制 。
### 3.列表相关操作
列表的定义在这里就不过多阐述,举例说明:
a = [‘apple’, ‘banana’, ‘pen’]
a 的类型
print(type(a))
print(a)
输出:
<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 只能是字符串
### 最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
#### 👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![](https://img-blog.csdnimg.cn/img_convert/604bae65027d4d67fb62410deb210454.png)
#### 👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/fa276175617e0048f79437bd30465479.png)
#### 👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/img_convert/16ac689cb023166b2ffa9c677ac40fc0.png)
#### 👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
![](https://img-blog.csdnimg.cn/img_convert/0d8c31c50236a205928a1d8ae8a0b883.png)
#### 👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![](https://img-blog.csdnimg.cn/img_convert/99461e47e58e503d2bc1dc6f4668534a.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
![img](https://i-blog.csdnimg.cn/blog_migrate/ff3d801c11c694422563c90c6afe2068.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/fa276175617e0048f79437bd30465479.png)
#### 👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/img_convert/16ac689cb023166b2ffa9c677ac40fc0.png)
#### 👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
![](https://img-blog.csdnimg.cn/img_convert/0d8c31c50236a205928a1d8ae8a0b883.png)
#### 👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![](https://img-blog.csdnimg.cn/img_convert/99461e47e58e503d2bc1dc6f4668534a.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
[外链图片转存中...(img-t4I2igZk-1713208285242)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**