欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【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'