python中的函数,Python客户端Web页面通用性能优化实践

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

3.保存函数的返回值

在这里插入图片描述

定义一个函数,返回 烟

def buy():

return ‘烟’

goods = buy()

print(goods)

return返回结果给函数调用的地方

def buy():

return ‘烟’

print(‘ok’)

goods = buy()

print(goods)

“”"

return 作用:

  1. 负责函数返回值

  2. 退出当前函数:导致return下方的所有代码(函数体内部)不执行

“”"

需求: 制作计算器:计算任意两个数字的加法的结果,并返回结果

“”"

  1. 定义函数:2个参数 和 return返回值

  2. 调用函数,传入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)

“”"

总结:

  1. 如果在函数里面直接把变量a=200赋值,此时的a不是全局变量的修改,而是相当于在函数内部声明了一个新的局部变量

  2. 函数体内部修改全局变量: 先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 访问打印形参看是否有数据

1.2 访问形参的id

1.3 改变形参的数据,查看这个形参并打印id,看id值是否相同

  1. 调用函数 – 把可变和不可变两种类型依次当做实参传入

“”"

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)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值