函数 function
函数是可以重复执行的语句块,可以重复调用
作用:
1.用于封装可重复执行的语句,提高语句的可重用性
2.定义用户给别的函数
函数定义语句 def
def 函数名(参数列表):
语句块(代码块)
说明:
1.函数的名字就是语句块的名称
2.函数名的命名规则与变量名命名规则相同(必须为标示符)
3.函数名是一个变量(不要轻易对其赋值)
4.函数的自己的名字空间,在函数内部可以访问外部的变量,但外部的语句不能访问函数内的变量
5.函数如果不需要传入参数,则参数列表可以为空
6.语句部分不能为空,如果为空需要填充pass语句
示例1:
def say_hello:
print("hello world!")
print("hello doggy!")
print("hello everyone!")
函数调用:
函数名(实际调用传递参数)
注:
实际调用传递参数以后简称"实参"
调用说明:
1.函数调用是一个表达式
2.如果没有return语句,函数执行完毕后返回None对象
3.如果函数需要返回其他的对象,需要用到return语句
示例2:
def mymax(a,b):
if a>b:
print("最大数是",a)
else:
print("最大数是",b)
mymax(233,456)
函数内部有独立的运行空间,函数外部不能访问函数内的变量
return语句:
语法:
return [表达式]
注:[]代表其中的内容可以省略
作用:
用于函数中,结束当前函数的执行,返回到调用函数的地方,同事返回一个对象的引用关系
说明:
1.return语句后跟的表达式可以省略,省略后相当于return None
2.如果函数内没有return语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return None语句)
3.函数调用能够返回一个对象的引用
python 函数的参数传递
传递方式:
位置传参
序列传参
关键字传参
字典关键字传参
位置传参:
实际调用参数(实参)的对应关系与形式参数(形参)的对应关系是按位置来以此对应的
示意:
def fx(a,b,c):
pass
fx(1,2,3)
序列传参:
序列传参是指在函数调用过程中,用*将序列拆解后按位置进行传递的传参方式
实参和形参通过序列传递和匹配
示例:
def fx(a,b,c):
pass
s1=[11,22,33] # 列表
fx(*s1) #将s1拆解后按位置传入fx中
关键字传参:
是指传参时,按照形参的名称给形参赋值,实参和形参按名称进行匹配
示例:
def fx(a,b,c):
pass
fx(b=22,c=33,a=11)
注:
实参和形参按形参名进行匹配,可以不按位置进行匹配
字典关键字传参:
实参为字典用**拆解字典后再进行关键字传参
示例:
def fx(a,b,c):
pass
d = {'c':33,'b':22,'a':11}
fx(**d)
说明:
字典的键名和形参名必须一致
字典的键名必要为字符串
字典的键名要在形参中存在
综合传参:
函数的传参方式在能确定形参能匹配到唯一相应实参的情况下可以任意组合
注:
通常位置传参和序列传参先传递,其次是关键字传和字典关键字传参
示例:
def fx(a,b,c,d,e,f):
pass
fx(10,*[20,30],e=50,**{'d':40,'f':60})