码迷,mamicode.com
首页 > 其他好文 > 详细

递归,yield,参数槽

时间:2016-07-24 21:03:36      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:递归   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))

 

本文出自 “11727697” 博客,请务必保留此出处http://11737697.blog.51cto.com/11727697/1829393

递归,yield,参数槽

标签:递归   yield   参数槽   

原文地址:http://11737697.blog.51cto.com/11727697/1829393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!