参数的学习

参数

位置参数
默认参数

默认值只会执行一次

官方推荐:默认参数尽量使用不可变类型

函数在被定义的时候,默认参数b的值会被计算出来,即[],因为默认参数b也是变量,指向对象[],每次调用

默认参数后面必须也是默认参数

关键字参数

函数调用时,指定参数的名称,即为关键字参数

关键字参数必须放在普通参数的后面

命名关键字参数

限定后边的参数必须是以关键字形式传参

def abc(a,b,*,c,d)

*后面的参数必须为关键字形参

可变参数

常见的*args,args变量指向一个元组对象

自动接受所有的未匹配的位置参数,到一个元组tuple对象里

**参数:所有未匹配的未知参数存储到一个字典里面去

**kwargs

解包,拆包

参数类型时字符串列表、元组、集合、字典的时候,可以解包

def abc(a,b,c):
print(a)
print(b)
print©
abc(*“123”)

abc(*[4,5,6])

要和定义的时候是一样的

d = {
“a” :“zs”,
“b” :18,
“c”:“python”,
}
abc(**d)

输出zs,18,python

函数调用函数

def fun_01():
print(“11111111”)

def fun_02():
print(“22222222”)
fun_01()
fun_02()

如果一个函数内部调用自己本身,那么这个函数就是递归函数

递归是有限制的,超过一千次就会报错

查递归限制 winR中输入python导入模块sys然后输入sys.getrecursionlimit()

求阶乘的函数可以用递归

def fact(n):
if n==1:
return 1
else:
return fact(n-1)*n

a = fact(3)
print(a)

斐波拉契数列

def Fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return Fibonacci(n - 1) + Fibonacci(n - 2)

print(Fibonacci(6))

汉诺塔

def hanno(n, A, B, C):
if n > 0:
hanno(n - 1, A, C, B)
print(f"盘子{n}从{A}-》{C}")
hanno(n - 1, B, A, C)

hanno(3, ‘A’, ‘B’, ‘C’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值