先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
list1 = name_list.copy()
print(list1)
print(name_list)
1.使用for循环
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
for i in name_list:
遍历序列中的数据
print(i)
2.使用while循环
name_list = [‘TOM’, ‘Lily’, ‘ROSE’]
‘’’
-
准备表示下标数据
-
循环while
条件 i < 3 len()
遍历:依次按顺序访问到序列的每一个数据
i += 1
‘’’
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
1.列表嵌套
name_list = [[‘TOM’, ‘Lily’, ‘Rose’], [‘张三’, ‘李四’, ‘王五’], [‘xiaohong’, ‘xiaoming’, ‘xiaolv’]]
print(name_list)
列表嵌套的时候的数据查询
print(name_list[0])
print(name_list[0][1])
2.应用
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
需求:8位老师,3个办公室, 将8位老师随机分配到3个办公室
“”"
步骤:
- 准备数据
1.1 8位老师 – 列表
1.2 3个办公室 - 列表嵌套
- 分配老师到办公室
*** 随机分配
就是把老师的名字写入到办公室列表 – 办公室列表追加老师名字数据
- 验证是否分配成功
打印办公室详细信息:每个办公室的人数和对应的老师名字
“”"
import random
1. 准备数据
teachers = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’]
offices = [[], [], []]
2. 分配老师到办公室 – 取到每个老师放到办公室列表 – 遍历老师列表数据
for name in teachers:
列表追加数据 – append(选中) extend insert
xx[0] – 不能指定是具体某个下标 – 随机
num = random.randint(0, 2)
offices[num].append(name)
print(num)
print(offices)
为了更贴合生活,把各个办公室子列表加一个办公室编号 1, 2, 3
i = 1
3. 验证是否分配成功
for office in offices:
打印办公室人数 – 子列表数据的个数 len()
print(f’办公室{i}的人数是{len(office)},老师分别是:')
打印老师的名字
print() – 每个子列表里面的名字个数不一定 – 遍历 – 子列表
for name in office:
print(name)
i += 1
t1 = (10, 20, 30)
print(t1)
print(type(t1))
1. 多个数据元组
t1 = (10, 20, 30)
print(type(t1))
2. 单个数据的元组
t2 = (10,)
print(type(t2))
3. 如果单个数据的元组不加逗号
t3 = (10)
print(type(t3)) # int
t4 = (‘aaa’)
print(type(t4)) # str
t5 = (‘aaa’,)
print(type(t5))
t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)
1. 下标
print(t1[0])
2. index()
print(t1.index(‘bb’))
print(t1.index(‘bbb’))
3. count()
print(t1.count(‘aa’))
print(t1.count(‘aaa’))
4. len()
print(len(t1))
t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)
t1[0] = ‘aaa’
t2 = (‘aa’, ‘bb’, [‘cc’, ‘dd’])
print(t2[2])
print(t2[2][0])
t2[2][0] = ‘TOM’
print(t2)
1.生活中的字典
2.软件开发中的字典
创建字典
{} 键值对 各个键值对用逗号隔开
1. 有数据的字典: name的值TOM, age的值是20, gender的值是男
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
print(dict1)
print(type(dict1))
2. 创建空字典
dict2 = {}
print(type(dict2))
dict3 = dict()
print(type(dict3))
3.根据键访问值
1.查看元素
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
1. [key]
print(dict1[‘name’]) # 返回对应的值(key存在)
print(dict1[‘names’])
2. 函数
2.1 get()
print(dict1.get(‘name’))
print(dict1.get(‘names’)) # 如果key不存在,返回None
print(dict1.get(‘names’, ‘Lily’))
2.2 keys() 查找字典中所有的key,返回可迭代对象
print(dict1.keys())
2.3 values() 查找字典中的所有的value,返回可迭代对象
print(dict1.values())
2.4 items() 查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值
print(dict1.items())
2.修改元素
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
dict1[‘name’] = ‘Lily’
print(dict1)
dict1[‘id’] = 110
print(dict1)
3.添加元素
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
字典序列[key] = 值
id的值是110
dict1[‘id’] = 110
print(dict1)
dict1[‘name’] = ‘ROSE’
print(dict1)
4.删除元素
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
del 删除字典或指定的键值对
del(dict1)
print(dict1)
del dict1[‘name’]
del dict1[‘names’] # 报错
print(dict1)
clear()
dict1.clear()
print(dict1)
5.len()
6.keys
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
for key in dict1.keys():
print(key)
7.values
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
for value in dict1.values():
print(value)
8.items
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
for item in dict1.items():
print(item)
dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}
xx.items(): 返回可迭代对象,内部是元组,元组有2个数据
元组数据1是字典的key,元组数据2是字典的value
for key, value in dict1.items():
print(key)
print(value)
目标: key=value
print(f’{key}={value}')
9.has_key (Python3 已取消)
1.字符串遍历
2.列表遍历
3.元组遍历
4.字典遍历
遍历字典的key(键)
遍历字典的value(值)
遍历字典的项(元素)
遍历字典的key-value(键值对)
5. 想一想,如何实现带下标索引的遍历
6.字典的扩展
有序字典:OrderDcit
1.创建集合
1. 创建有数据的集合
s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 40, 30, 20}
print(s2)
s3 = set(‘abcdefg’)
print(s3)
2. 创建空集合: set()
s4 = set()
print(s4)
print(type(s4))
s5 = {}
print(type(s5))
2.集合常见操作方法
增加数据
s1 = {10, 20}
1. 集合是可变类型
add()
s1.add(100)
print(s1)
集合有去重功能,如果追加的数据是集合已有数据,则什么事情都不做
s1.add(100)
print(s1)
s1.add([10, 20, 30]) # 报错
print(s1)
update(): 增加的数据是序列
s1.update([10, 20, 30, 40, 50])
print(s1)
s1.update(100) # 报错
print(s1)
删除数据
s1 = {10, 20, 30, 40, 50}
remove(): 删除指定数据,如果数据不存在报错
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)
discard():删除指定数据,如果数据不存在不报错
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
pop(): 随机删除某个数据,并返回这个数据
del_num = s1.pop()
print(del_num)
print(s1)
查找数据
s1 = {10, 20, 30, 40, 50}
in 或not in 判断数据10是否存在
print(10 in s1)
print(10 not in s1)
1.运算符
+
str1 = ‘aa’
str2 = ‘bb’
list1 = [1, 2]
list2 = [10, 20]
t1 = (1, 2)
t2 = (10, 20)
dict1 = {‘name’: ‘Python’}
dict2 = {‘age’: 30}
+: 合并
print(str1 + str2)
print(list1 + list2)
print(t1 + t2)
print(dict1 + dict2) # 报错:字典不支持合并运算
*
str1 = ‘a’
list1 = [‘hello’]
t1 = (‘world’,)
*:复制
print(str1 * 5)
打印10个-:
print(‘-’ * 10)
print(list1 * 5)
print(t1 * 5)
in或not in
str1 = ‘abcd’
list1 = [10, 20, 30, 40]
t1 = (100, 200, 300, 400)
dict1 = {‘name’: ‘Python’, ‘age’: 30}
in 和 not in
1. 字符a是否存在
print(‘a’ in str1)
print(‘a’ not in str1)
2. 数据10是否存在
print(10 in list1)
print(10 not in list1)
3. 100是否存在
print(100 not in t1)
print(100 in t1)
4. name是否存在
print(‘name’ in dict1)
print(‘name’ not in dict1)
print(‘name’ in dict1.keys())
print(‘name’ in dict1.values())
2.公共方法
len()
str1 = ‘abcdefg’
list1 = [10, 20, 30, 40, 50]
t1 = (10, 20, 30, 40, 50)
s1 = {10, 20, 30, 40, 50}
dict1 = {‘name’: ‘TOM’, ‘age’: 18}
del()
str1 = ‘abcdefg’
list1 = [10, 20, 30, 40, 50]
t1 = (10, 20, 30, 40, 50)
s1 = {10, 20, 30, 40, 50}
dict1 = {‘name’: ‘TOM’, ‘age’: 18}
del 目标 或del(目标)
del str1
print(str1)
del(list1)
print(list1)
del(list1[0])
print(list1)
del s1
print(s1)
del dict1
print(dict1)
del dict1[‘name’]
print(dict1)
max()
min()
str1 = ‘abcdefg’
list1 = [10, 20, 30, 40, 50]
max() : 最大值
print(max(str1))
print(max(list1))
min() : 最小值
print(min(str1))
print(min(list1))
range()
range(start, end, step)
print(range(1, 10, 1))
for i in range(1, 10, 1):
print(i)
for i in range(1, 10):
print(i)
for i in range(1, 10, 2):
print(i)
for i in range(10):
print(i)
1. 如果不写开始,默认从0开始
2. 如果不写步长,默认为1
enumerate()
list1 = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
enumerate 返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据
for i in enumerate(list1):
print(i)
for i in enumerate(list1, start=1):
print(i)
3.容器类型转换
tuple()
list()
set()
list1 = [10, 20, 30, 20, 40, 50]
s1 = {100, 300, 200, 500}
t1 = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’)
tuple(): 转换成元组
print(tuple(list1))
print(tuple(s1))
list():转换成列表
print(list(s1))
print(list(t1))
set():转换成集合
print(set(list1))
print(set(t1))
1.列表推导式
快速体验
需求:0, 1, 2,4…
1. 循环实现;2. 列表推导式(化简代码;创建或控制有规律的列表)
“”"
1.1 创建空列表
1.2 循环将有规律的数据写入到列表
“”"
while实现-------------
list1 = []
i = 0
while i < 10:
list1.append(i)
i += 1
print(list1)
for 实现--------------
list1 = []
for i in range(10):
list1.append(i)
print(list1)
列表推导式实现------------------------
list1 = [i for i in range(10)]
print(list1)
带if的列表推导式
需求:0-10偶数数据的列表
1. 简单列表推导式 range步长
list1 = [i for i in range(0, 10, 2)]
print(list1)
2. for循环加if 创建有规律的列表
list2 = []
for i in range(10):
if i % 2 == 0:
list2.append(i)
print(list2)
3. 把for循环配合if的代码 改写 带if的列表推导式
list3 = [i for i in range(10) if i % 2 == 0]
print(list3)
多个for循环实现列表推导式
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
数据1 : 1 和 2 range(1,3)
数据2 :0 1 2 range(3)
list1 = []
for i in range(1, 3):
for j in range(3):
列表里面追加元组: 循环前准备一个空列表,然后这里追加元组数据到列表
list1.append((i, j))
print(list1)
多个for实现列表推导式
list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
多for的列表推导式等同于for循环嵌套
2.字典推导式
快速体验
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
带if的列表推导式
list3 = [i for i in range(10) if i % 2 == 0]
print(list3)
多个for循环实现列表推导式
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
数据1 : 1 和 2 range(1,3)
数据2 :0 1 2 range(3)
list1 = []
for i in range(1, 3):
for j in range(3):
列表里面追加元组: 循环前准备一个空列表,然后这里追加元组数据到列表
list1.append((i, j))
print(list1)
多个for实现列表推导式
list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
多for的列表推导式等同于for循环嵌套
2.字典推导式
快速体验
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-kA4cECqn-1713169988595)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!