php yield 递归,递归,yield,参数槽

#1、

records = [('f',1,2,4),('k',3,4,5),('z','e','d')]

for key,value,*val in records:

#可迭代对象,解构

if key == 'f':

f(val)

print('val:{0},{1}'.format(*val))

print('key:{0},value:{1}'.format(key,value))#2、参数槽

#以*分隔,{非命名参数,命名参数}

#不可使用可变位置参数

#可变关键字参数必须在命名参数之后

def func(a,b,c=3,*,f=5,k=3,j,**kw):

print(a)

print(b)

print(c)

print(f)

print(k)

print(j)

print(kw)

func(9,4,f=4,j=7,s=8)

9

4

3

4

3

7

{'s': 8}#3、递归

lst = []

#十进制转换二进制

def to_binary(n):

r = n % 2

if n >= 2:

to_binary(n/2)

lst.append(int(r))

to_binary(10)

print(lst)

[1, 0, 1, 0]#4、生成器(斐波那契数列)

def fib():

a,b = 0,1

while True:

a,b = b,a+b# 解包,封包

yield b

gen=fib()

def func(x):

for i in range(x):

print(next(gen))5、斐波那契数列:

def fab(n):

#(1)

a = 1

b = 1

for i in range(n):

print(a)

a,b = b,a+b

def fab():

#(2)

a = 1

b = 1

while True:

yield a

a,b = b,a+b

gen = fab()

for i in range(10):

print(next(gen))

def fab(n):

#(3)

if n == 1 or n == 0:

return 1

return fab(n-1)+fab(n-2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值