python函数基础
函数
- 自定义函数
- 调用函数
- 函数的参数
- 函数的递归
参数传递方式
- 位置传递
fact(1,2)
- 名称传递
fact(m=1,n=2)
关键字参数
def Hello(greeting="Hello",name="world"):
print('{},{}!'.format(greeting,name))
Hello()
Hello("goodbye")
Hello("greeting","university")
- 通过名称指定的参数叫做关键字参数,调用时候与位置无关
- 可指定默认值,调用函数可以不提供参数,或者提供部分参数
位置参数和关键字参数可以混合使用,但位置参数必须在前、关键字参数在后
可变参数
- 不定长参数,在调用函数的时候,可以接受任意数量的实参,这些实参在传递给函数的时候会被封装成字典或者元组
- 一般情况下不定长参数会放在一般参数的最后,一般参数会按照顺序一一对应,剩下的传给补丁长参数
- 其实不定长参数也可以放在一般参数的前面,但是调用的时候必须按照关键字参数的形式给对应位置赋值
def StuInfo1(name,*args):
print('姓名:',name,'其他,',args)
def StuInfo2(name,**args):
print('姓名:,',name,',其他:,',args)
def StuInfo3(name,*args,country='中国'):
print('姓名:', name, ',国家:', country, ',其他:', args)
返回值
- 函数可以返回多个返回值
- return 传递函数返回值
- 返回值可以有也可以没有
- 没有返回值 return None
作用域
局部变量 | 全局变量 | |
---|---|---|
定义位置 | 函数中 | 函数体外 |
作用域 | 函数体内 | 全局 |
生命周期 | 函数结束释放 | 在程序结束前存在 |
global
nolocal
- nonlocal: 在Python中,函数的定义可以嵌套,即在一个函数的函数体中可以包含另一个函数的定义。
- 通过nonlocal关键字,可以使内层的函数直接使用外
层函数中定义的变量