马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>>def MyFirstFunction(name):
'函数定义过程中的name是叫形参'
#因为Ta只是一个形式,表示占据一个参数位置
print('传递进来的' + name + '叫做实参,因为Ta是具体的参数值')
>>> MyFirstFunction('小甲鱼')
传递进来的小甲鱼叫做实参,因为Ta是具体的参数值
形式参数(parameter): 在定义函数时设置 实际参数(argument):在调用函数时设置
函数文档:给函数写文档是为了让人家更好的理解你的函数,一般写在定义函数语句的下一行,用一对单引号或双引号
>>> def MyFirstFunction(name):
'函数定义过程中的name是叫形参'
#因为Ta只是一个形式,表示占据一个参数位置
print('传递进来的' + name + '叫做实参,因为Ta是具体的参数值')
>>> MyFirstFunction('小甲鱼')
传递进来的小甲鱼叫做实参,因为Ta是具体的参数值
>>> MyFirstFunction.__doc__ # 打印此函数的函数文档
'函数定义过程中的name是叫形参'
>>> help(MyFirstFunction) # 同上,打印此函数的函数文档
Help on function MyFirstFunction in module __main__:
MyFirstFunction(name)
函数定义过程中的name是叫形参
>>>
关键字参数:
>>> SaySome('小甲鱼','让编程改变世界')
小甲鱼->让编程改变世界
>>> SaySome('让编程改变世界','小甲鱼')
让编程改变世界->小甲鱼
>>> SaySome(words='让编程改变世界',name='小甲鱼') # 关键字参数,关键字就是当初定义函数时给的形参,这样能避免实参调用顺序出错
小甲鱼->让编程改变世界
>>>
默认参数:定义了默认值的参数
>>> def SaySome(name='小甲鱼',words='让编程改变世界'): # 为形参赋初值
print(name + '->' + words)
>>> SaySome() # 当没传递参数时,系统调用初值
小甲鱼->让编程改变世界
>>> SaySome('苍井空') # 按默认顺序传递一个实参
苍井空->让编程改变世界
>>> SaySome('苍井空','我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为 了私欲和欺骗!') #按默认顺序,传递两个实参
苍井空->我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为 了私欲和欺骗!
>>>
收集参数:可变参数
>>> def test(*params): # *表示定义一个可变参数,参数打包成一个元组,元组名字为params
print('参数的长度是:',len(params));
print('第二个参数是:',params[1]);
>>> test(1,'小甲鱼',3.14,5,6,7,8) # 实参为元组,因为元组只需逗号隔开就行
参数的长度是: 7
第二个参数是: 小甲鱼
>>> def test(*params,exp): # 除了可变参数,还给一个固定形参
print('参数的长度是:',len(params),exp);
print('第二个参数是:',params[1]);
>>> test(1,'小甲鱼',3.14,5,6,7,8)
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
test(1,'小甲鱼',3.14,5,6,7,8)
TypeError: test() needs keyword-only argument exp # 默认把参数都给了params元组
>>> test(1,'小甲鱼',3.14,5,6,7,exp=8) # 用关键字给exp一个实参
参数的长度是: 6 8
第二个参数是: 小甲鱼
>>> def test(*params,exp=8): # 给默认参数一个值
print('参数的长度是:',len(params),exp);
print('第二个参数是:',params[1]);
>>> test(1,'小甲鱼',3.14,5,6,7,8) # 这样即使调用时忘了给exp传实参,也不会报错
参数的长度是: 7 8
第二个参数是: 小甲鱼
>>>
总结:
1.什么情况下不需要定义参数?
函数体执行的代码已包含所有数据的可能。直接print就行
2.关键字参数和默认参数区别?
关键字参数是在函数调用时设置的,以防传参顺序错乱导致bug。默认传参是按顺序来的。 默认参数是在定义函数时给参数设置的初始值,以防调用函数时忘了给实参导致报错。
3.当某段代码在整个代码中需要重复用到多次,此时就用函数将这一段代码打包。
|