*args表示任何多个无名参数,它是一个tuple元组;**kwargs表示关键字参数,它是一个dict字典
def foo(*args, **kwargs):
print('args = ', args)
print('kwargs = ', kwargs)
print '----'
if __name__ == '__main__': # 程序主入口
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4, a=1,b=2,c=3)
foo('a', 1, None, a=1, b='2', c=3)
foo('ajin', 'hello', 666, 'kitty', age=2.5, gender='female')
输出结果如下:
args = (1, 2, 3, 4)
kwargs = {}
args = ()
kwargs = {'a': 1, 'c': 3, 'b': 2}
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
1、*args的使用方法
*args表示任何多个无名参数,*args 用来将参数打包成tuple给函数体调用
### 如示例1:
def function1(*args):
print(args, type(args))
function1(1) 输出: (1,) <class 'tuple'>
如示例2:
def function2(x, y, *args):
print(x, y, args)
function2(1, 2, 3, 4, 5) 输出: 1 2 (3, 4, 5)
2、**kwargs的使用方法
**kwargs表示关键字参数,它是一个dict,**kwargs 打包关键字参数成dict(字典)给函数体调用
如示例1:
def function3(**kwargs):
print( kwargs, type(kwargs))
function3(a=2) 输出: {'a': 2} <class 'dict'>
如示例2:
def function4(**kwargs):
print(kwargs)
function4(a=1, b=2, c=3) 输出: {'a': 1, 'b': 2, 'c': 3}
注意点:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错
如示例3:
def function(arg,*args,**kwargs):
print(arg, args, kwargs)
function(6, 7, 8, 9, a=1, b=2, c=3)
输出: 6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3}
str.format() 方法详解
1、省略字段名传递位置参数
print('我叫{},今年{}岁。'.format('小明', 18))
我叫小明,今年18岁。
2、花括号个数可以少于位置参数的个数
print('我爱吃{}和{}。'.format('香蕉', '苹果', '大鸭梨'))
我爱吃香蕉和苹果。
3、 通过数字形式的简单字段名传递位置参数
print('身高{0},家住{1}。'.format(1.8, '铜锣湾'))
身高1.8,家住铜锣湾
4、 数字形式的简单字段名可以重复使用。
print('我爱{0}。\n她今年{1}。\n{0}也爱我。'.format('阿香', 17))
我爱阿香。
她今年17。
阿香也爱我。
5、体会把所有位置参数整体当成元组来取值
print('阿香爱吃{1}、{3}和{0}。'.format(
'榴莲', '臭豆腐', '皮蛋', '鲱鱼罐头', '螺狮粉'))
阿香爱吃臭豆腐、鲱鱼罐头和榴莲。
6、 使用变量名形式的简单字段名传递关键字参数
print('我大哥是{name},今年{age}岁。'.format(name='阿飞', age=20))
我大哥是阿飞,今年20岁。
7、关键字参数的顺序可以随意调换
print('我大哥是{name},今年{age}岁。'.format(age=20, name='阿飞'))
我大哥是阿飞,今年20岁。
8、 可以同时传递位置参数和关键字参数
print('这是一个关于{0}、{1}和{girl}的故事。'.format(
'小明', '阿飞', girl='阿香'))
这是一个关于小明、阿飞和阿香的故事。
9.、使用元组传参
infos = '钢铁侠', 66, '小辣椒'
print('我是{},身价{}亿。'.format(*infos))
我是钢铁侠,身家66亿。
10、使用字典传参
venom = {'name': '毒液', 'weakness': '火'}
print('我是{name},我怕{weakness}。'.format(**venom))
我是毒液,我怕火。
1 1、同时使用元组和字典传参
hulk = '绿巨人', '拳头'
captain = {'name': '美国队长', 'weapon': '盾'}
print('我是{}, 我怕{weapon}。'.format(*hulk, **captain))
print('我是{name}, 我怕{1}。'.format(*hulk, **captain))
我是绿巨人, 我怕盾。
我是美国队长, 我怕拳头。
打印字符串
1.打印字符串
print("My name is %s" %("Alfred.Xue"))
#输出效果:My name is Alfred.Xue
2.打印整数
print("I am %d years old." %(25))
#输出效果:I am 25 years old.
3.打印浮点数
print ("His height is %f m"%(1.70))
#输出效果:His height is 1.700000 m
```