字符串中的str.format()方法进行字符串格式化
1.1 返回一个新的字符串,str中的替换字段被格式化后输出
In [1]: "{0},{1}".format("hello","world") Out[1]: 'hello,world' In [2]: "{{0}},{1}".format("hello","world") Out[2]: '{0},world' In [3]: "{{{0}}},{1}".format("hello","world") Out[3]: '{hello},world'
1.2 字符串和数字进行连接时,会出现TypeError异常,但是format()可以
In [4]: "{0},{1}".format("hello",12) Out[4]: 'hello,12'
1.3 进行字符串连接。通常用join()方法
In [5]: s="{0},{1}" In [6]: s=s.format("hello","python") In [7]: s Out[7]: 'hello,python'
使用字段名
1.4 关键字参数
In [8]: "{name},{age}".format(name="ling",age=12) Out[8]: 'ling,12' 在参数列表中,关键字参数总是在位置参数之后 In [10]: "{name}:{0}".format(12,name="ling") Out[10]: 'ling:12'
1.5 参数是list
In [11]: list1=[12,"name","age"] In [12]: list2=[66,67,68] In [13]: "{0[2]},{1[2]}".format(list1,list2) Out[13]: 'age,68'
1.6 参数是dict
In [14]: dict={"name":"lingling","age":12} In [15]: "{0[age]},{0[name]}".format(dict) Out[15]: '12,lingling'
1.7 存取属性
In [16]: import math In [17]: "{0.pi}".format(math) Out[17]: '3.141592653589793'
总结:通过字段名语法,可以传递引用给str.format()方法的位置参数与关键字参数。如果参数是集合数据类型,例如列表或字典,或参数
还包含一些属性,那么可以使用[]或.表示法进行存取所需的部分。
1.8 从Python3.1开始,忽略字段名成为可能,这种情况下,Python会自动进行处理(从0开始)
In [19]: "{},{},{}".format("name","age","sex") Out[19]: 'name,age,sex'
1.9 通过locals函数【该函数会返回一个字典,字典的键是局部变量名,字典的值则是对变量名的引用。】映射拆分操作符为**,可应用
于映射来产生一个适合于传递函数的键值列表。
name = "lingling" age = 12 str = "age is {age},name is {name}".format(**locals()) print(str) # age is 12,name is lingling
将字典拆分并提供给str.format()方法时,允许使用字典的键作为字段名。这使得字符串格式化更易于理解,因为不需要依赖于参数的顺序。
但是,如果有其他参数,则映射拆分必须放最后面。
d={"name":"lingling","age":12} d1={"sex":0} str="{0},{name},,{sex},{age}".format(1,**d,**d1) print(str) # 1,lingling,,0,12
通常不用多个字典,因为可以合并,如果d,d1中包含同样的key,那么就会报错。即使这个key不用。