【python】之字符串格式化'{}'和.format组合使用
程序员文章站
2022-03-08 14:56:51
...
字符串格式化用法:通过’ { } ‘和.format( )来代替传统%方式
- 1、使用位置参数:位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表
1.1直接一一对应传入值
>>> data = ['jack',25]
>>> 'my name is {} ,age {}'.format(data[0],data[1])
'my name is jack ,age 25'
1.2可以传入位置,则会改变传入数据的传入顺序
>>> 'my name is {1} ,age {0}'.format(data[0],data[1])
'my name is 25 ,age jack'
1.3可以多次传入位置值
>>> 'my name is {1} ,age {0}{1}'.format(data[0],data[1])
'my name is 25 ,age jack25'
1.4不可以混合传递
>>> 'my name is {1} ,age {}'.format(data[0],data[1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: cannot switch from manual field specification to automatic field numbering
1.5可以传入可变参数
>>> 'my name is {1} ,age {0}'.format(*data)
'my name is 25 ,age jack'
>>> 'my name is {} ,age {}'.format(*data)
'my name is jack ,age 25'
- 2、使用关键字参数:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
2.1可用字典当关键字参数传入值,字典前加**即可
>>> data2 = {'name':'bruce','age':25}
>>> data2
{'name': 'bruce', 'age': 25}
>>> 'my name is {} ,age {}'.format(**data2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> 'my name is {name} ,age {age}'.format(**data2)
'my name is bruce ,age 25
2.2传入关键字参数一一对应
>>> 'my name is {name} ,age {age}'.format(name = 'brcue',age=18)
'my name is brcue ,age 18'
- 3、填充与格式化::[填充字符][对齐方式 <^>][宽度]
>>> '{:*>10}'.format(10) ##右对齐
'********10'
>>> '{:*<10}'.format(10) ##左对齐
'10********'
>>> '{:*^10}'.format(10) ##居中对齐
'****10****'
- 4、精度与进制
>>> '{:.2f}'.format(1/3)
'0.33'
>>> '{:b}'.format(10) #二进制
'1010'
>>> '{:o}'.format(10) #八进制
'12'
>>> '{:x}'.format(10) #16进制
'a'
>>> '{:,}'.format(12369132698) #千分位格式化
'12,369,132,698'
- 5、使用索引
>>> data
['jack', 25]
>>> 'my name is {0[0]} ,age {0[1]}'.format(data)
'my name is jack ,age 25'