1.1 函数简介
- 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
语法
def 函数名([形参1,形参2,形参3....]):
代码块
1.2 函数的参数
- 关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
以下实例在函数 printme() 调用时使用参数名
def printme(str):
"打印任何传入的字符串"
print(str)
return
printme(str="My string")
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/191f931031f2b40b7aa0558390e90996.png#pic_center)
- 默认参数
调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入
def printinfo(name, age=35):
"打印任何传入的字符串"
print("Name: ", name)
print("Age ", age)
return
printinfo(age=50, name="mike")
printinfo(name="mike")
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e2660b2fe935a2682cbaa99441adf17c.png#pic_center)
- 不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下
def printinfo(arg1, *vartuple):
"打印任何传入的参数"
print("输出: ",arg1)
for var in vartuple:
print(var)
return
printinfo(10)
printinfo(70, 60, 50)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/57fc40ad21c53c66e6d0004c3019f7a6.png#pic_center)
1.3参数的解包
- 传递实参时,也可以在序列类型的参数前添加星号,这样它会自动的将序列中元素依次作为参数传递
要求序列中的元素的个数必须和形参的个数一致
def fun(a,b,c):
print('a=', a)
print('b=', b)
print('c=', c)
t=(10,20, 30)
fun(*t)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d36a1c562ed0917a8821ca349b378cb4.png#pic_center)