Python 字符串格式化的三种写法

首先说明一下,本文提到的 Python 字符串三种格式化方法,是指在 Python3.6 中可运行的,在 Python3.6 以下的版本以及 Python2 版本中可能会出现报错,敬请悉知。 本文参考于:(那些過時的) Python 字串格式化以及 f-string 字串格式化

%-formatting

这种字符串格式化的方式在 C 语言中就有了,可以说是很常见的了,Python 自然也滋瓷啦。

1
2
3
4
5
6
>>> 'Python version: %.1f' % (3.6)
'Python version: 3.6'
>>> 'I have %d pen, I have %d apple' % (1, 1)
'I have 1 pen, I have 1 apple'
>>> 'Hello, %s' % ('World')
'Hello World'

str.format

Python 在 PEP 3101 中引入了str.format()这种新的格式化方法,这下我们格式化字符串就更加方便了,直接.format()就可以了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
>>> 'Python version: {:.5f}'.format(3.6)
'Python version: 3.60000'
>>> 'Hello {name:*^15}'.format(name='foobar')
'Hello ****foobar*****'
>>> for base in 'dXob':
...     print('{:{width}{base}}'.format(15, base=base, width=5))
...
   15
    F
   17
 1111

如需要更具体的使用方法可翻阅 Python 官方文档:Format Specification Mini-Language

f-string

Python 在 PEP 498 中引入了f-string这种新的格式化方法,正式名称叫做Literal String Interpolation,相比较之下,f-string这种格式化方法在使用上就更加的简洁方便了,sample 如下

1
2
3
>>> value = 4 * 20
>>> f'The value is {value}.'
'The value is 80.'

如果你想知道更多更具体的f-string的相关信息,请翻阅 Python 官方文档:PEP 498: Formatted string literals

以上便是 Python 中常见的三种字符串格式化方法,最后祝你身体健康,再见。