Python_10

来源:互联网 发布:复旦大学软件工程学院 编辑:程序博客网 时间:2024/06/07 00:23
    1.
def print_test(*n):    print nprint_test('Testing')print_test(1,2,3)def print_test2(title,*n):    print title    print nprint_test2('Running:',1,2,3)print_test2('Running:')

Python中收集参数,*号开头表示收集其余参数,并以元组方式存储。

(‘Testing’,)
(1, 2, 3)
Running:
(1, 2, 3)
Running:
()

    2.
def print_test3(**n):    print nprint_test3(x=1,y=2,z=3)print '-'*25def print_test4(x,y,z=3,*pospar,**keypar):    print x,y,z    print pospar    print keyparprint_test4(1,2,3,4,5,6,7,q=3,w=5)

这里**开头表示收集关键字参数,并以字典方式存储。

输出:

{'y': 2, 'x': 1, 'z': 3}-------------------------1 2 3(4, 5, 6, 7){'q': 3, 'w': 5}

3.
上一节中,如何实现多个名字同时储存,在本节可以解决。

def store(data,*full_names):    for full_name in full_names:        names=full_name.split()

改成上述一样即可。

    4.
#参数收集的逆过程def add(x,y):    return x+yn=(1,3)print add(*n)print '-'*15def hello_world(greeting='Hello',name='Mary'):    print '%s, %s!'%(greeting,name)params={'name':'Bob','greeting':'Hi'}hello_world(**params)

输出:

4---------------Hi, Bob!
    5.
def story(**kwds):    return 'Once upon a time, there was a'\            '%(job)s called %(name)s.' %kwdsdef power(x,y,*others):    if others:        print 'Receive redundant parameters:',others    return pow(x,y)def interval(start,stop=None,step=1):    if stop is None:        start,stop=0,start    result=[]    i=start    while i<stop:        result.append(i)        i+=step    return result

参数使用范例。

>>> print story(job='king',name='Bob')Once upon a time, there was aking called Bob.>>> params={'name':'Python','job':'language'}>>> print story(**params)Once upon a time, there was alanguage called Python.>>> del params['job']>>> print story(job='stoke of genius',**params)Once upon a time, there was astoke of genius called Python.>>> power(2,3)8>>> power(y=3,x=2)8>>> params=(4,)*2>>> power(*params)256>>> power(3,3,'Hello world')Receive redundant parameters: ('Hello world',)27>>> interval(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> interval(1,5)[1, 2, 3, 4]>>> interval(3,12,4)[3, 7, 11]>>> power(*interval(3,7))Receive redundant parameters: (5, 6)81
原创粉丝点击