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