一、函数是什么
- 函数是实现具有特定功能的代码
- Python中预制了很多内置函数
- 开发者也可以创建自定义函数
二、函数的特点
- 隐藏实现功能细节
- 重用代码
- 提高可读性,便于调试
三、函数的定义
- 语法
def 函数名([形式参数1,...,形式参数n]):
要运行的代码(函数体)
return 返回的数据
- 示例
def print_verse(verse_name):
if verse_name == '静夜诗':
print("床前明月光")
print("疑是地上霜")
print("举头望明月")
print("低头思故乡")
elif verse_name == '春晓':
print("春眠不觉晓")
print("处处闻啼鸟")
print("夜来风雨声")
print("花落知多少")
print_verse('春晓')
- 在无需返回数据时,return语句可以忽略不写
四、函数的使用技巧
1.什么是形参和实参
- 参数就是调用函数时给函数的输入数据,在程序运行时可以根据参数不同执行不同代码
- 形参:形式参数,用于定义函数规定需要传入的参数,就如上述示例中的
verse_name - 实参:实际参数,在调用函数时,传入的要实际使用的数据,就如上述示例中的
'春晓'
2.函数的返回值
- 参数是函数的输入数据,而返回值则是函数的输出结果
return不是必须的,return语句执行后,函数将中断执行
3.函数的使用技巧一
-
设置参数默认值:在定义函数时,可以给参数设置默认值,当没有传入参数时,采用默认值
def say_hello(no='1'): if no == '1': print("hello") if no == '2': print("Hello") say_hello('2') say_hello()
-
形参形式传参(关键字传参):当函数参数有多个时,如果使用常规的“位置传参”使用起来容易混淆,而关键字传参可以更清晰的表达传参用意
def man_info(name, age, salary): print(name, age, salary) man_info(name='Schuyler', age=28, salary=20000) -
混合形式传参:即可按位置传参,同时又强制了一部分参数必须关键字传参的形式称为混合形式传参
- 可以使用
*强制要求必须使用关键字传参,*代表之后所有参数传参时必须使用关键字传参
def man_info(name, *, age, salary): print(name, age, salary) man_info('Schuyler', age=28, salary=20000) - 可以使用
4.函数的使用技巧二
-
序列传参: 在调用函数时可以将序列中的元素作为实参传入函数中,需要在实参前添加前缀
*,这样函数会根据序列的顺序依次将元素作为实参传入函数def method1(num1, num2, num3): return num1 * num2 + num3 lst = [2, 3, 6] print(method1(*lst))
-
字典传参:在调用函数时可以将字典中的键名对应形参,将值作为实参传入函数中,只需要在实参字典前添加前缀
**def method(name, age, salary): print(name, age, salary) info = {'name': 'Schuyler', 'age': 28, 'salary': 10000} method(**info)
-
返回多个数据:返回多个数据其实就是将多个数据进行封装,最常用的是将多个数据封装成字典后再将字典返回
def method(): man_info = { 'emp': [{'name': 'cai', 'age': 28}, {'name': 'zheng', 'age': 28}], 'position': [{'name': 'cai', 'p': '爸爸'}, {'name': 'zheng', 'p': '妈妈'}] } return man_info print(method())[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGhLBIM7-1574604321788)(https://note.youdao.com/yws/res/43294/6A82527806284CB2A373B1D9F1DB54B6)]
5.函数的使用技巧三
- 定义函数时,形参前添加前缀
*,从此形参位置开始,后面输入的所有参数都会收集成一个元祖作为实参传入函数中
def my_func(num, *nums):
print(num)
print(nums)
my_func(1, 2, 3, 4, 5)

- 定义函数时,形参前添加前缀
**,从此形参位置开始,将key=value的实参打包成字典传入函数中
def my_func(num, **dic):
print(num)
print(dic)
my_func(1, name='Schuyler', age=23)

本文详细介绍了Python中的函数,包括其定义、特点及多种使用技巧,如形参与实参、返回值、设置参数默认值、序列与字典传参以及返回多个数据等。通过这些技巧,可以提升代码的可读性和复用性。
1972

被折叠的 条评论
为什么被折叠?



