python知识点@函数的使用(2)
参数:就是函数括号里的内容 函数在调用的时候指定一个具体的变量的值 就是参数
def 函数名(参数):
函数体
形参和实参
在开发中,我们常常会听到“形参”和“实参”这两个词,那么,何为形参?何为实参呢?
先给大家给实例
def multip(a,b):#形参
return a*b
multiplication = multip(10,20)#实参
print(multiplication)
输出:200
我们从上面的代码中可以看出实参是一个实实在在存在的参数就是10,20,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的,如在上面例子中,a和b就是两个“形参”,它们在multip函数定义的时候在括号中占位。告诉函数体,有两个入参。当我们调用multip函数时传入的10和20就是“实参”,是我们具体传的值。传参:给函数传递信息的时候将实际参数交给形式参数的过程被称为传参。
参数的分类
位置参数
def makeFrinds(chat,name,age):
print(chat)
print(name)
print(age)
print("利用{}软件认识了一位:{}:年龄:{}的小姐姐".format(chat,name,age))
makeFrinds("微信","小花","20") #位置参数
"""
微信
女
小花
20
利用微信软件认识了一位:小花:年龄:20的小姐姐
"""
我们可以从上面的代码知道,我们传的参数是按照顺序一个一个进行传参的了,在传参过程中.系统会按照位置把实参赋值到形参,形参就是一个变量名,实参就是具体的值 传参就是在赋值。
关键字参数
我们在开发过程中,我们的函数需要传入大量的参数的,我们使用位置参数就不是非常方便,有可能会忘记那个参数没有传参,也不容易记住,而导致调用函数报错,所以python中关键字参数可以解决这个问题。
def makeFrinds(chat,name,age):
print(chat)
print(name)
print(age)
print("利用{}软件认识了一位:{}:年龄:{}的小姐姐".format(chat,name,age))
makeFrinds(age="20",name="小花",chat="微信") # 关键字参数
输出:
微信
小花
20
利用微信软件认识了一位:小花:年龄:20的小姐姐
从上面的代码中我们可以发现关键字参数不用记住每个参数的位置. 只要记住每个参数的名字就可以了
默认参数
定义函数时直接给形参给定一个值,如果调用时未给值,就用定义函数时给定的默认值
def makeFrinds(name,age,chat="微信"): #默认参数chat形参默认给传的值是微信
print(name)
print(age)
print(chat)
makeFrinds("小花","20","QQ")
输出:
小花
20
QQ
从上面的代码我们可以发现默认参数chat形参默认给传的值是微信让QQ给覆盖了,可以说明实参传的值大于默认形参的值
位置参数、关键字参数、默认参数 位置优先级顺序
def makeFrinds(chat,name,age):
print(name)
print(age)
print(chat)
makeFrinds("小花","20",chat="QQ")
输出:
makeFrinds("小花","20",chat="QQ")
#makeFrinds("小花","20",chat="QQ")
TypeError: makeFrinds() got multiple values for argument 'chat'
def makeFrinds(name,age,chat):
print(name)
print(age)
print(chat)
makeFrinds("小花","20",chat="QQ")
从上面的代码我们可以发现位置参数必须在关键字参数前面
def makeFrinds(age,chat="微信",name):
print(age)
print(chat)
print(name)
makeFrinds("小花","20","QQ")
#输出:
def makeFrinds(age,chat="微信",name):
^
SyntaxError: non-default argument follows default argument
def makeFrinds(name,age,chat="微信"):
print(age)
print(chat)
print(name)
makeFrinds("小花","20","QQ")
#输出
小花
20
QQ
从上面的代码我们可以发现位置参数必须在默认参数前面
def makeFrinds(name,age="30",chat):
print(name)
print(age)
print(chat)
makeFrinds("小花","20",chat="QQ")
#出:
def makeFrinds(name,age="30",chat):
^
SyntaxError: non-default argument follows default argument
def makeFrinds(name,chat,age="30"):
print(name)
print(chat)
print(age)
makeFrinds("小花",chat="QQ",age=20)
#输出:
小花
QQ
20
从上面的代码我们可以发现关键字参数在默认参数前面
从上可以总结:位置参数>关键字参数>默认参数
本人所有原创文章
第一时间发布至此公众号「进击的bug」
关注后,回复「进击」试试,会有您意想不到的编程视频学习大礼包,