函数基础
定义函数
def 函数名(一个或多个参数):
函数体
return 返回值
例:
def print_name(name):
print(name)
return 返回值可以为空
调用:print_name('wython')
# 注意:函数是先定义再调用,所以在定义阶段出现逻辑错误不会报错,只有调用的时候才会报。
调用函数
函数的调用就是函数名加括号
def func():
pass
调用: func()
函数的返回值
函数的返回值:
可以没有返回值,默认函数会返回None
返回一个参数,可以赋值给一个变量
返回多个参数,用逗号隔开,得到的是一个元组
什么时候该有返回值?
调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值
通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果
什么时候不需要有返回值?
调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值
通常无参函数不需要有返回值
参数的定义
位置参数:按照位置传参
def func(name,sex,age):
pass
func('wython','male',18)
# 会根据参数的位置依次传值
关键字参数:按照指定的关键字传值
def func(name,sex,age):
pass
func(name='wython',sex='male',age=18)
# 根据写的关键字传值,顺序可以打乱
默认参数:默认参数是key=value的形式,如果调用时根据关键字传值了会用传入的值,不传值就会用默认写的值
def func(name='wython',sex='male',age=18):
pass
func(name='Eric')
# 默认的name值会发生改变,sex和age没有传入值,就会用默认设置的
可变长参数:有些时候我们不知道会传入几个参数,我们就可以设置可变长参数
def func(name,*args):
pass
func('wython',17,male,student)
# args参数打印就是一个元组(17,'male',student)
命名关键字参数:不确定会有多少关键字参数传入,用**kwargs
def func(name,*args,**kwargs):
pass
func('wython',17,male,student,teacher='lili',school='tiangong')
# 函数func里面的参数name=wython,args=(17,'male','student'),kwargs={'teacher'='lili','school'='tiangong'}