先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
3.保存函数的返回值
定义一个函数,返回 烟
def buy():
return ‘烟’
goods = buy()
print(goods)
return返回结果给函数调用的地方
def buy():
return ‘烟’
print(‘ok’)
goods = buy()
print(goods)
“”"
return 作用:
-
负责函数返回值
-
退出当前函数:导致return下方的所有代码(函数体内部)不执行
“”"
需求: 制作计算器:计算任意两个数字的加法的结果,并返回结果
“”"
-
定义函数:2个参数 和 return返回值
-
调用函数,传入2个真实数据 – 这里即有返回值结果,打印这个结果即可
“”"
def sum_num(a, b):
return a + b
result = sum_num(1, 2)
print(result)
help(len) # help函数作用:查看函数的说明文档(函数的解释说明的信息)
def sum_num(a, b):
“”“求和函数”“”
return a + b
help(sum_num)
函数的说明文档的高级使用
def sum_num1(a, b):
“”"
求和函数sum_num1
:param a: 参数1
:param b: 参数2
:return: 返回值
“”"
return a + b
help(sum_num1)
两个函数 testA 和 testB – 在A里面嵌套调用B
B函数
def testB():
print(‘B函数开始-----’)
print(‘这是B函数’)
print(‘B函数结束-----’)
A函数
def testA():
print(‘A函数开始-----’)
嵌套调用B
testB()
print(‘A函数结束-----’)
testA()
1.思考&实现1
1. 打印一条横线
def print_line():
print(‘-’ * 20)
print_line()
2. 函数嵌套调用 实现多条横线
def print_lines(num):
i = 0
while i < num:
print_line()
i += 1
print_lines(5)
2.思考&实现2
1. 任意三个数之和
def sum_num(a, b, c):
return a + b + c
result = sum_num(1, 2, 3)
print(result)
2. 任意三个数求平均值
def average_num(a, b, c):
先求和 再除以3
sumResult = sum_num(a, b, c)
return sumResult / 3
averageResult = average_num(1, 2, 3)
print(averageResult)
1.变量作用域
变量作用域指的是变量生效的范围,主要分为两类:局部变量和全局变量。
2.局部变量
定义一个函数,声明一个变量:函数体内部访问、函数体外面访问
def testA():
a = 100
print(a) # 函数体内部访问,能访问到a变量
testA()
print(a) # 报错: a变量是函数内部的变量,函数外部无法访问 – a是一个局部变量
什么是局部变量
小总结
1.什么是全局变量
声明全局变量:函数体内外都能访问
a = 100
print(a)
def testA():
print(a)
def testB():
print(a)
testA()
testB()
2.全局变量和局部变量名字相同问题
3.修改全局变量
B函数想要a的取值是200
a = 100
print(a)
def testA():
print(a)
def testB():
a = 200 # 如果直接修改a=200,此时的a是全局a还是局部a? – 得到结论:这个a是局部变量
# 因为在全局位置(B函数调用后)打印a得到的不是200而是100
print(a)
想要修改全局变量a,值是200
global a # 声明a为全局变量
a = 200
print(a)
testA()
testB()
print(a)
“”"
总结:
-
如果在函数里面直接把变量a=200赋值,此时的a不是全局变量的修改,而是相当于在函数内部声明了一个新的局部变量
-
函数体内部修改全局变量: 先global声明a为全局变量,然后再变量重新赋值
“”"
1.使用全局变量
2.使用函数的返回值、参数
3.函数嵌套调用
1. 声明全局变量;2. 定义两个函数;3. 函数一修改全局变量;函数2访问全局变量
glo_num = 0
def test1():
global glo_num
glo_num = 100
def test2():
print(glo_num)
print(glo_num) # 0, 因为修改的函数没执行
test2() # 0 , 因为修改的函数没执行
test1()
test2() # 100,先调用了函数1
print(glo_num) # 100 , 调用了函数1
1. 定义两个函数;2. 函数一有返回值50;函数二把返回值50作为参数传入(定义函数二要有形参)
def test1():
return 50
def test2(num):
print(num)
先得到函数一的返回值,再把这个返回值传入到函数二
result = test1()
print(result)
test2(result)
在python中我们怎样返回多个值?
需求:一个函数有两个返回值1和2
一个函数如果有多个return不能都执行,只执行第一个return:无法做法一个函数多个返回值
def return_num():
return 1
return 2
result = return_num()
print(result)
一个函数多个返回值的写法
def return_num():
return 1, 2 # 返回的是元组
return后面可以直接书写 元组 列表 字典,返回多个值
return (10, 20)
return [100, 200]
return {‘name’: ‘Python’, ‘age’: 30}
result = return_num()
print(result)
1.多个return?
2.一个函数返回多个数据的方式
1.位置参数
需求:函数3个参数name,age,gender
def user_info(name, age, gender):
print(f’您的姓名是{name}, 年龄是{age}, 性别是{gender}')
user_info(‘TOM’, 20, ‘男’)
user_info(‘TOM’, 20) # 个数定义和传入不一致会报错
user_info(20, ‘TOM’, ‘男’) # 顺序也和定义必须是一致的,否则导致数据无意义
2.关键字参数
def user_info(name, age, gender):
print(f’您的姓名是{name}, 年龄是{age}, 性别是{gender}')
调用函数传参
user_info(‘ROSE’, age=20, gender=‘女’)
user_info(‘小明’, gender=‘男’, age=18) # 关键字参数之间不分先后顺序
位置参数必须写在关键字参数的前面
user_info(age=20, gender=‘男’, ‘TOM’)
3.缺省参数
def user_info(name, age, gender=‘男’):
print(f’您的姓名是{name}, 年龄是{age}, 性别是{gender}')
user_info(‘TOM’, 18) # 没有为缺省参数传值,表示使用默认值
user_info(‘TOM’, 18, gender=‘女’) # 为缺省参数传值,使用这个值,即修改了默认值
4.不定长参数
接收所有位置参数,返回一个元组
def user_info(*args):
print(args)
user_info(‘TOM’)
user_info(‘TOM’, 20)
user_info(‘TOM’, 20, ‘man’)
user_info()
收集所有关键字参数,返回一个字典
def user_info(**kwargs):
print(kwargs)
user_info()
user_info(name=‘TOM’)
user_info(name=‘TOM’, age=20)
5. 缺省参数在*args后面
1.对返回的数据直接拆包
1. 拆包元组数据
def return_num():
return 100, 200
# result = return_num()
# print(result)
num1, num2 = return_num()
print(num1)
print(num2)
2. 字典数据拆包: 变量存储的数据是key值
先准备字典,然后拆包
dict1 = {‘name’: ‘TOM’, ‘age’: 20}
dict1中有两个键值对,拆包的时候用两个变量接收数据
a, b = dict1
print(a)
print(b)
v值
print(dict1[a])
print(dict1[b])
2.交换2个变量的值
a = 10
b = 20
1. 方法一
“”"
1.1 定义中间的第三变量,为了临时存储a或b的数据
1.2 把a的数据存储到c,做保存
1.3 把b的数据赋值到a, a = 20
1.4 把c的数据赋值到b, b = 10
“”"
c = 0
c = a
a = b
b = c
print(a)
print(b)
a, b = 1, 2
print(a)
print(b)
a, b = b, a
print(a)
print(b)
可变和不可变
1. 不可变:int: 1.1 声明变量保存整型数据,把这个数据赋值到另一个变量; id()检测两个变量的id值(内存的十进制值)
a = 1
b = a
print(b)
# 发现a和b的id值相同的
print(id(a))
print(id(b))
# 修改a的数据测试id值
a = 2
print(b)
# 因为修改了a的数据,内存要开辟另外一份内存取存储2,id检测a和b的地址不同
print(id(a))
print(id(b))
2. 可变类型:列表
aa = [10, 20]
bb = aa
print(bb)
print(id(aa))
print(id(bb))
aa.append(30)
print(aa)
print(bb) # 列表是可变类型
print(id(aa))
print(id(bb))
需求:引用是否可以当做实参
“”"
- 定义函数: 有形参
1.1 访问打印形参看是否有数据
1.2 访问形参的id
1.3 改变形参的数据,查看这个形参并打印id,看id值是否相同
- 调用函数 – 把可变和不可变两种类型依次当做实参传入
“”"
def test1(a):
print(a)
print(id(a))
a += a
print(a)
print(id(a))
b = 100
test1(b)
c = [11, 22]
test1©
1.自定义函数
2.调用函数
3.作用域
定义功能界面函数
def info_print():
print(‘请选择功能--------------’)
print(‘1、添加学员’)
print(‘2、删除学员’)
print(‘3、修改学员’)
print(‘4、查询学员’)
print(‘5、显示所有学员’)
print(‘6、退出系统’)
print(‘-’ * 20)
等待存储所有学员的信息
info = []
添加学员信息的函数
def add_info():
“”“添加学员函数”“”
1. 用户输入:学号、姓名、手机号
new_id = input(‘请输入学号:’)
new_name = input(‘请输入姓名:’)
new_tel = input(‘请输入手机号:’)
2. 判断是否添加这个学员:如果学员姓名已经存在报错提示;如果姓名不存在添加数据
global info
2.1 不允许姓名重复:判断用户输入的姓名 和 列表里面字典的name对应的值 相等 提示
for i in info:
if new_name == i[‘name’]:
print(‘此用户已经存在’)
return作用:退出当前函数,后面添加信息的代码不执行
return
break
2.2 如果输入的姓名不存在,添加数据:准备空字典,字典新增数据,列表追加字典
info_dict = {}
字典新增数据
info_dict[‘id’] = new_id
info_dict[‘name’] = new_name
info_dict[‘tel’] = new_tel
print(info_dict)
列表追加字典
info.append(info_dict)
print(info)
删除学员
def del_info():
“”“删除学员”“”
1. 用户输入要删除的学员的姓名
del_name = input(‘请输入要删除的学员的姓名:’)
2. 判断学员是否存在:存在则删除;不存在提示
2.1 声明info是全局变量
global info
2.2 遍历列表
for i in info:
2.3 判断学员是否存在:存在执行删除(列表里面的字典),break:这个系统不允许重名,删除了一个后面的不需要再遍历;不存在提示
if del_name == i[‘name’]:
列表删除数据 – 按数据删除remove
info.remove(i)
break
else:
print(‘该学员不存在’)
print(info)
修改函数
def modify_info():
“”“修改学员信息”“”
1. 用户输入想要修改的学员您的姓名
modify_name = input(‘请输入要修改的学员的姓名:’)
2. 判断学员是否存在:存在修改手机号;不存在,提示
2.1 声明info是全局
global info
2.2 遍历列表,判断输入的姓名==字典[‘name’]
for i in info:
if modify_name == i[‘name’]:
将tel这个key修改值,并终止此循环
i[‘tel’] = input(‘请输入新的手机号:’)
break
else:
学员不存在
print(‘该学员不存在’)
3. 打印info
print(info)
查询学员信息函数
def search_info():
“”“查询学员信息”“”
1. 用户输入目标学员姓名
search_name = input(‘请输入要查询的学员的姓名:’)
2. 检查学员是否存在:存在打印这个学员的信息;不存在则提示
2.1 声明info为全局
global info
2.2 遍历info,判断输入的学员是否存在
for i in info:
if search_name == i[‘name’]:
学员存在:打印信息并终止循环
print(‘查询到的学员信息如下---------------’)
print(f"学员的学号是{i[‘id’]}, 姓名是{i[‘name’]}, 手机号是{i[‘tel’]}")
break
else:
学员不存在的提示
print(‘查无此人…’)
显示所有学员信息
def print_all():
“”“显示所有学员信息”“”
1. 打印提示字
print(‘学号\t姓名\t手机号’)
2. 打印所有学员的数据
for i in info:
print(f"{i[‘id’]}\t{i[‘name’]}\t{i[‘tel’]}")
系统功能需要循环使用,直到用户输入6,才退出系统
while True:
1. 显示功能界面
info_print()
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
查学员是否存在:存在打印这个学员的信息;不存在则提示
2.1 声明info为全局
global info
2.2 遍历info,判断输入的学员是否存在
for i in info:
if search_name == i[‘name’]:
学员存在:打印信息并终止循环
print(‘查询到的学员信息如下---------------’)
print(f"学员的学号是{i[‘id’]}, 姓名是{i[‘name’]}, 手机号是{i[‘tel’]}")
break
else:
学员不存在的提示
print(‘查无此人…’)
显示所有学员信息
def print_all():
“”“显示所有学员信息”“”
1. 打印提示字
print(‘学号\t姓名\t手机号’)
2. 打印所有学员的数据
for i in info:
print(f"{i[‘id’]}\t{i[‘name’]}\t{i[‘tel’]}")
系统功能需要循环使用,直到用户输入6,才退出系统
while True:
1. 显示功能界面
info_print()
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-q1EdfUQy-1713349145431)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!