函数
函数的定义
def 语句定义函数,格式如下:
def sayHello(name):
if(name): print('hello',name) else: print('hello,','I'm nomor\n') name = input('Would you mind tell me your name?\n') sayHello(name)name = input('请输入你的姓名:')
sayHello(name)
函数执行会返回值,默认为 None
def my_abs(x):
if(x >= 0): return x else: return -xnewNum = int(input('请输入一个数字:'))
my_abs(newNum)
#要注意到是,函数可以返回多个值,最后返回的多个值组成的 tuple
def num():
return 1,2,3,4,5print(num())
print(num()[1])pass 语句 pass语句可以作为一个占位符,例如定义一个空数组
def void():
passs
函数的参数
在仅有位置参数的情况下,调用时候输入的参数必须和位置参数相同,否则会报错
def num(x,y):
return [x,y]#会报错
num(1)使用默认参数,可以在调用的时候不添加参数
def num(x,y=2):
return [x,y]num(1) # [1,2]
可变参数,输入多个参数,调用的时候会变成一个tuple
def num(*num):
print(num[0])num(0,1,2,3,4,5,6,7,8,9)
关键字参数 内部组装成 dict
def person(**kw):
print(kw)person(city = 'Qingdao')
city = {"city" : "Qingdao"}
person(**city)
5.命名关键字 利用 * 控制传入的 dict 的 key ,若前面有可变参数则可以省略
def person(*,city,job = 'FE'): print(city)person(city = 'Qingdao')def person2(*args,name,sex): print(args) print(name)person2(1,2,3,5,name = 'zx',sex='girl')
- 参数组合使用时具有顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
- 可以用 *[] 的方式 和 **{} 调用里面的值
递归
函数内部调用函数这种方式就叫做递归,递归可能造成栈溢出
def move(n,a,b,c):if n > 10 : print('我觉着你看不完')elif n == 1: print(a,'=>',c)else: move(n-1,a,c,b) print(a,'=>',c) move(n-1,b,a,c)num = input('请输入汉诺塔的数目(小于10):')move(num,'A','B','C')