python中的函数
原创
shenhao1
2021-08-13 23:10:42
©著作权
文章标签
python
数据
全局变量
调用函数
局部变量
文章分类
Python
编程语言
©著作权归作者所有:来自51CTO博客作者shenhao1的原创作品,请联系作者获取转载授权,否则将追究法律责任python中的函数https://blog.51cto.com/u_12304807/3413837
python中的函数
一、函数介绍
1.什么是函数
![python中的函数_调用函数](https://s5.51cto.com/images/blog/202108/13/e6c6b18e7f04b9a9761d93b86dd2bb53.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
二、函数定义和调用
1.定义函数
![python中的函数_调用函数_02](https://s8.51cto.com/images/blog/202108/13/3ca40b36c56ac89d941d203edbe953dc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2.调用函数
![python中的函数_局部变量_03](https://s5.51cto.com/images/blog/202108/13/88188c9e0d7d3aa31b85ffdb236c9b87.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 因为函数要先定义再调用,所以步骤2和3要在步骤1的上面书写
# 2. 确定选择功能界面: 显示余额 存款 取款; # 3. 封装函数
def sel_func():
print('显示余额')
print('存款')
print('取款')
# 1. 搭建整体框架
"""
输入密码登录后显示功能; 查询余额后显示功能; 取完钱后显示功能
"""
print('恭喜您登录成功')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()
print('您的余额是10000000')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()
print('取了100元钱')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()
3.注意
![python中的函数_局部变量_04](https://s5.51cto.com/images/blog/202108/13/3a48887afada29060710dfa74641fe5e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 1. 使用一个函数 2.测试注意事项
# 需求:一个函数:打印hello world
# info_print() # 报错
# 定义函数
def info_print():
print('hello world')
# 调用函数
info_print()
"""
结论:
1. 函数先定义后调用,如果先调用会报错
2. 如果没有调用函数,函数里面的代码不会执行
3. 函数执行流程***
当调用函数的时候,解释器回到定义函数的地方去执行下方缩进的代码,当这些代码执行完,回到调用函数的地方继续向下执行
定义函数的时候,函数体内部缩进的代码并没有执行
"""
4.练一练
![python中的函数_局部变量_05](https://s7.51cto.com/images/blog/202108/13/97531ec3ba6aa2d75fb02622d4553443.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
三、函数参数(一)
![python中的函数_调用函数_06](https://s8.51cto.com/images/blog/202108/13/26d7e1aa13067149619acadcc47e15ec.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.定义带有参数的函数
![python中的函数_全局变量_07](https://s9.51cto.com/images/blog/202108/13/6c5fdc99ae5e9ef6a27391da6033959a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 1. 函数:固定数据1 和 2 加法
def add_num1():
result = 1 + 2
print(result)
add_num1()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201012170330401.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW90YWkxMjM0,size_16,color_FFFFFF,t_70#pic_center)
# 2. 参数形式传入真实数据 做加法运算
def add_num2(a, b):
result = a + b
print(result)
add_num2(10, 20)
add_num2(100, 200)
# add_num2(100) # 报错,定义函数有2个参数,传入数据也要是2个
2. 调用带有参数的函数
![python中的函数_数据_08](https://s9.51cto.com/images/blog/202108/13/930a427aa4e71c09cb391b9263cae00f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
四、函数返回值(一)
1.“返回值”介绍
![python中的函数_python_09](https://s7.51cto.com/images/blog/202108/13/e258951b609de3d9d540f391dc79f91e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2.带有返回值的函数
![python中的函数_数据_10](https://s9.51cto.com/images/blog/202108/13/678a5ce2d85b25afb48ce68420824948.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3.保存函数的返回值
![python中的函数_局部变量_11](https://s3.51cto.com/images/blog/202108/13/6fa48974ef4d7d503f4f2507e82ef8b7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 定义一个函数,返回 烟
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)
五、函数的文档说明
![python中的函数_全局变量_12](https://s4.51cto.com/images/blog/202108/13/36a2d6f7cf62908fcb52e0a4a3c49d03.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_python_13](https://s4.51cto.com/images/blog/202108/13/ebd657da042baf3ff3c0ccc200dccc2d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 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)
六、函数的嵌套调用
![python中的函数_局部变量_14](https://s5.51cto.com/images/blog/202108/13/6a52a38ba83671f78e3ec32ff2b5cfa9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_调用函数_15](https://s4.51cto.com/images/blog/202108/13/021d65dc6555de85db62f504188b1d64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 两个函数 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
![python中的函数_python_16](https://s7.51cto.com/images/blog/202108/13/ac008850be6629b618a5c6c56793f7f9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 1. 打印一条横线
def print_line():
print('-' * 20)
# print_line()
# 2. 函数嵌套调用 实现多条横线
def print_lines(num):
i = 0
while i b else b
print(fn1(1000, 500))
列表数据按字典key的值排序
![python中的函数_调用函数_79](https://s6.51cto.com/images/blog/202108/13/57243077acbe03c3d2e0dcea2812296e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
students = [
{'name': 'TOM', 'age': 20},
{'name': 'ROSE', 'age': 19},
{'name': 'Jack', 'age': 22}
]
# sort(key=lambda..., reverse=bool数据)
# 1. name key对应的值进行升序排序
students.sort(key=lambda x: x['name'])
print(students)
# 2. name key对应的值进行降序排序
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
# 3. age key对应的值进行升序排序
students.sort(key=lambda x: x['age'])
print(students)
二十二、高阶函数
![python中的函数_数据_80](https://s6.51cto.com/images/blog/202108/13/d8b202ec53e97970dde6daaf0e420ade.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1.体验高阶函数
![python中的函数_数据_81](https://s7.51cto.com/images/blog/202108/13/fe872144a8684795475aac4c0360d8f9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_python_82](https://s4.51cto.com/images/blog/202108/13/6911c9220c8230c2d6ca0972754d214f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# abs(): 绝对值
# print(abs(-10))
# round(): 四舍五入
print(round(1.2))
print(round(1.9))
print(round(1.05, 1))
print(round(1.16, 1))
# 需求:任意两个数字,先进行数字处理(绝对值或四舍五入)再求和计算
# 1. 写法一
# def add_num(a, b):
# # 绝对值
# return abs(a) + abs(b)
#
#
# result = add_num(-1.1, 1.9)
# print(result)
# 2. 写法二:高阶函数:f是第三个参数,用来接收将来传入的函数
def sum_num(a, b, f):
return f(a) + f(b)
result1 = sum_num(-1, 5, abs)
print(result1)
result2 = sum_num(1.1, 1.3, round)
print(result2)
2.内置高阶函数
map 用法
![python中的函数_局部变量_83](https://s6.51cto.com/images/blog/202108/13/ab961c8158268334e62e8dd06d45c425.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_全局变量_84](https://s6.51cto.com/images/blog/202108/13/e15e975ff04968d05e205bc4ffb54e32.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_python_85](https://s2.51cto.com/images/blog/202108/13/0ed1a6dcfad5eba624130dc340c87317.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
# 1. 准备列表数据
list1 = [1, 2, 3, 4, 5]
# 2. 准备2次方计算的函数
def func(x):
return x ** 2
# 3. 调用map
result = map(func, list1)
# 4. 验收成果
print(result)
print(list(result))
reduce 用法
![python中的函数_python_86](https://s4.51cto.com/images/blog/202108/13/72aeb6a0e3b9193cbb1b2daf61ae5244.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_全局变量_87](https://s4.51cto.com/images/blog/202108/13/622cda4116577911f82359cac79b87dc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
list1 = [1, 2, 3, 4, 5]
# 1. 导入模块
import functools
# 2. 定义功能函数
def func(a, b):
return a * b
# 3. 调用reduce,作用:功能函数计算的结果和序列的下一个数据做累计计算
result = functools.reduce(func, list1)
print(result)
filter 用法
![python中的函数_调用函数_88](https://s5.51cto.com/images/blog/202108/13/f82f9b68c80f0bead10597754423ee17.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_调用函数_89](https://s8.51cto.com/images/blog/202108/13/e1c655f0760477766d96e65fdd98d45b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![python中的函数_python_90](https://s5.51cto.com/images/blog/202108/13/39f95b5bc87e1bef8616345cb9e71242.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 1. 定义功能函数:过滤序列中的偶数
def func(x):
return x % 2 == 0
# 2. 调用filter
result = filter(func, list1)
print(result)
print(list(result))
赞
收藏
评论
分享
微博
QQ
微信
举报
上一篇:python中文件操作和综合应用
下一篇:python判断语句和循环语句
|