Python之format, *args, **kwargs

1 *args, **kwargs

  • *args和**kwargs是python中的可变参数;
  • *args表示任何多个无名参数,是tuple类型;
  • **表示关键字参数,是dict类型;
  • 同时使用*args和kwargs时,*args必须放在kwargs前面;
def foo(*args, **kwargs):
	print("args={}".format(args))
	print("kwargs={}".format(kwargs))
	for i in range(10):
		print("**",end='')
if __name__ == "__main__":
	# tuple类型数据
	foo(1, 2, 3, 4)
	# dict类型数据
	foo(a=1, b=2, c=3)
	# tuple+dict类型数据
	foo(1, 2, 3, 4, a=1, b=2, c=3)
  • 修正打印
    此处感谢:醒山im。
print("**"*10, end='')
  • Result
# *args为tuple类型
# **kwargs为dict类型
args=(1, 2, 3)
kwargs={}
********************
args=()
kwargs={'a': 1, 'b': 2, 'c': 3}
********************
args=(1, 2, 3)
kwargs={'a': 1, 'b': 2, 'c': 3}
********************

注意

# *args, **kwargs先后顺序错误
def foo(**kwargs, *args):
# 结果
 File "<ipython-input-54-434a959009b6>", line 1
    def foo(**kwargs, *args):
                      ^
SyntaxError: invalid syntax

2 format

  • format是Python2.6开始新增的格式化字符串函数,形式str.format();
  • 使用形式"{}{}".format("a","b");
  • 传统%引用变量输出,即print("%d" %a);
  • format参数个数不受限制.

2.1 默认输出

  • Demo
a = "{} {}".format("xin", "daqi")
b = "{},{}".format("OK","See you later!")
print(type(a))
print(a)
print(type(b))
print(b)
  • Result
# format输出格式为字符串,默认按照参数先后位置输出
<class 'str'>
xin daqi
<class 'str'>
OK,See you later!

2.2 指定参数顺序输出

  • Demo
a = 'OK'
b = "Let's go!"
o1 = "{}{}".format(b,a)
o2 = "{1},{0}".format(b,a)
print(o1)
print(o2)
  • Result
# 按照指定顺序输出,在{}中指定变量
# format参数从0开始标注
Let's go!OK
OK,Let's go!

2.3 指定输出变量

  • Demo
userInfo = {"name":"xin daqi", "sex":"male"}
print("姓名:{name}, 性别:{sex}".format(**userInfo))
  • Result
# 结果
# 指定输出变量
# format参数使用dict类型
# **kwargs参数
姓名:xin daqi,性别:male

2.4 传入对象参数

  • Demo
class Test(object):
	def __init__(self, value):
		self.value = value
useTest = Test(2)
print("{0.value}".format(useTest))
  • Result
# 传入对象
# 输出变量
2

[参考文献]
[1]https://www.cnblogs.com/goodhacker/p/3360721.html
[2]http://www.runoob.com/python/att-string-format.html


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值