Python的笔记(5)

参数的组合
五种参数类型可以组合使用,但是有一定的顺序,顺序是:位置参数、默认值参数、可变参数、命名关键字参数、关键字参数

>>> def f1(a,b,c=0,*args,**kw): 
... print("a=",a,"b=",b,"c=",c,"args=",args,"kw=",kw) 
...
>>> def f2(a,b,c=0,*,d,**kw): 
... print("a=",a,"b=",b,"c=",c,"d=",d,"kw=",kw) 
... 
>>> args = (1,2,3,4)
>>> kw = {"d":99,"X":"#"} 
>>> f1(*args,**kw) a= 1 b= 2 c= 3 args= (4,) kw= {'d': 99, 'X': '#'} 
>>> arg = (1,2,3) 
>>> kw = {"d":99,"X":"#"} 
>>> f2(*arg,**kw) a= 1 b= 2 c= 3 d= 99 kw= {'X': '#'} 
>>> kw = {"f":88,"x":"&"} 
>>> f2(*arg,**kw) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: f2() missing 1 required keyword-only argument: 'd'

函数的递归

在函数的内部,去调用自己
条件:
1、函数自己要调用自己
2、递归一定要有结束条件
使用递归函数需要注意防止递归深度溢出,在Python中,通常情况下,这个深度是1000层,超过将抛出异常。 在计算机中,函数递归调用是通过栈(stack)这种数据结构实现的,每当进入一个递归时,栈就会加一层,每当函数返回一次,栈就会减一层。 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。

#求n! 
def fact(n): 
	if n == 1: 
		return 1 
	return n*fact(n-1) 
print(fact(5)) 
# 5 * fact(5-1) 
# 5 * 4 * fact(4-1) 
# 5 * 4 * 3 * fact(3-1) 
# ..... 
# 5 * 4 * 3 * 2 * 1

匿名函数
匿名:没有名字的函数

function 函数名称(参数){ 
//代码块 
return 返回值 
}function (参数){ 
//代码块 }
python中
def 函数名(参数):
 #代码块 
 return 返回值

ambda 参数 : 代码 如果有返回值就写,没有就不写

def sum(a,b,c): 
	return a + b + c 
sum_lambda = lambda a,b,c: a + b + c 
print(sum(1,100,1000)) 
print(sum_lambda(1,100,1000))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值