我也是看了《编写高质量代码 改善Python程序的91个建议》这本书并结合网上诸多教程的体会
字符串格式化通常会这样写:
print("Hello %s!" % ("BigBing"))
但当数量多的时候就很难分清楚%s这个占位符对应哪一个实参,
Python2.6 开始,新增了一种格式化字符串的函数 str.format()
,它增强了字符串格式化的功能。
基本语法是通过{}
和 :
来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
print('{}+{}={}'.format('10','20','30'))
print('{1}+{0}={2}'.format('10','20','30'))
输出结果:
10+20=30
20+10=30
也可以设置参数:
print("搜索引擎:{name}, 地址 {url}".format(name="百度", url="www.baidu.com"))
通过字典设置参数
kwargs = {"name": "百度", "url": "www.baidu.com"}
print("搜索引擎:{name}, 地址 {url}".format(**kwargs))
输出结果:
搜索引擎:百度, 地址 www.baidu.com
**kwargs
**kwargs 允许你将不定长度的键值对, 作为参数传递给一个函数。 如果你想要在一个函数里处理带名字的参数, 你应该使用**kwargs。。
关键字参数允许你传入0个或任意个含参数名的参数
def test_args_kwargs_0(arg1, arg2, arg3):
print("arg1:", arg1)
print("arg2:", arg2)
print("arg3:", arg3)
kwargs_0 = {'arg1':7, 'arg2':3,'arg3':90}
test_args_kwargs_0(**kwargs_0)
输出结果:
arg1: 7
arg2: 3
arg3: 90
同时提醒:传递的所有关键字参数必须与函数接受的某个参数相匹配
若 kwargs_1 = {“arg4”: 3, “arg2”: “two”, “arg1”: 5}
test_args_kwargs_0(**kwargs_1)
会报错
TypeError: test_args_kwargs_0() got an unexpected keyword argument 'arg4'