前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
函数:将一个事情的步骤封装在一起并得到最终的结果,我们也把实现一个函数的功能称作实现一个方法
函数名代表了整个函数要做的事情
函数体是实现函数功能的流程
在python中,我们可以把我们的功能都封装到函数中以便重复使用。
内置函数
python中已经封装好可以直接使用的函数
如:print、id、int、str、max、min、range
自定义函数
def是定义函数的关键字
def name(args...):
todo something..
返回值
return是将函数结果返回的关键字
return只能在函数体内使用
return支持返回所有的python类型,返回的数据可以直接赋值给一个变量
函数里return后面的代码不会被执行,效果相当于break
def add(a,b):
c = a + b
return c
result = add(a=1, b=1) # result来接收函数的返回值
print result
例子:
定义函数的时候,在括号内以变量的形式定义函数的参数,方便函数内部使用这些参数。
在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数
必传参数不传会报错
在定义函数的时候,定义的参数含有默认值。
如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值
def add(a, b=1, c) # 其中a,c是必传参数,b是默认参数
例子:
没有固定的参数名和数量(不知道要传的参数名具体是什么)
def add(*args,**kwargs):
...
add(1,2,3,4,name='xiaoming',age=20)
# *:将无参数名的值合并成元组
# **:将有参数与默认值的参数合并成字典
上面调用add函数的例子中,参数1,2,3,4
将被*args
合并成一个元组,而name='xiaoming,age=20'
将被**kwargs
合并成一个字典:
思考:如果想要往可变参数中传入元组或字典呢,像上面那样直接用逗号隔开的方式还可以正确传入吗?
不可以,运行结果如下,会将两个参数都传入第一个可变参数,且合并成了元组:
此时,我们只需要在传入参数前加入*就可以解决这个问题:
参数的定义从左到右依次是必传参数,默认参数,可变元组参数,可变字典参数。顺序是不可变的。
我们传入参数时也要按照这个顺序。但是还是推荐用赋值语句的方式传入,方便我们清楚的看到哪个值对应的哪个参数。
特例,当我们使用赋值的方式传参的时候:
修改后如下:这种方式虽然可以避免报错,但并不推荐,我们还是优先按照必传参数->默认参数->可变元组参数->可变字典参数的顺序来定义参数。
def person(name:str,age:int=30)
print(name,age)
注意:
例子: