一:函数的缺省参数(在实际调用中,实参的个数可以少于形参个数)
1、语法:
def 函数名(形参名1=默认实参1,形参名2=默认实参2……)
示例:
def info(name, age=1.address=’未填写’):
print(name,’今年’, age, ‘岁, 家庭地址是:’ address)
info(‘tarena’, 15, ‘北京市朝阳区’)
info(‘小李’, 20)
说明:
缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则基右侧的所有参数必须有缺省参数。
缺省参数可以有0个或多个,甚至全部都有缺省参数。
练习:
写一个函数 mysum(),可以传入两个实参或三个实参,如果传入两个实参,则返回两个实参和,如果传入三个实参,则返回前两个实参的和对第三个实参求余的结果。
二:函数的形参定义方式
1、位置形参
语法:
def 函数名(形参1,形参2,……)
语句块
2、星号元组形参:
语法:
def 函数名(*元组形参名):
语句块
作用:
收集多余的位置传参
说明:
元组形参名通常用:’args’
练习:
在系统中随意输入一个数字,求出该数字的和,并打印输出。
3、 命名关键字形参
语法:
def 函数名(*, 命名关键字形参):
语句
或
def 函数名(*args, 命名关键字形参):
语句
作用:
所有的参数都必须用关键字传参或字典关键字传参传递
示例:
4、 双星号字典形参:
语法:
def 函数名(**字典形参名):
语句
作用:
收集多余的关键字传参
说明:
通常字典形参名定为’’kwargs’’
综合:
函数参数自左至右的顺序为:位置形参,星号元组形参,命名关键字形参和双星号字典形参,函数参数可以混合使用。
三:函数的不定长参数:
1、语法:
def fn(*args, **kwargs)
pass
说明:
可以接收任意的位置传参和关键字传参(想怎么传就怎么传)
练习:
写一个myrange函数,此函数返回一个符合range规则的整数列表。
如:
L = myrange(3)
Print(L)
L = myrange(3, 6)
Print(L)
说明:首先把终止值设置为None,步长为1,判断是否没有输入终止值,如果没有输入,终止值就等于开始值,初始化开始值为0,定个一个空的列表,然后绑定一个开始值,当开始值小于终止值时,把i添加到列表中,然后输出下一个i的值(i +=i + step),最后把数据传到列表里,代码如下图: