我们知道,在Python中,格式化字符串的方法有三种,分别是%s法,str.format()法以及f_string法。其中后两种方法在指定字符串格式方面较为直观,且兼容性强,成为目前官方推荐的主流方法。由于它们都运用了花括号,本文主要总结花括号中的一些符号在字符串格式化中的应用。
1、冒号(:)
引入格式说明符。在{}中需要使用符号时,要先通过冒号引入
2、类型转换
放在冒号后面指定类型
s
- 字符串d
或i
- 十进制整数f
- 浮点数e
或E
- 指数表示法g
或G
- 一般格式(自动选择f或e)b
- 二进制o
- 八进制x
- 十六进制(小写)X
- 十六进制(大写)%
- 百分比格式化
"{:d}".format(10) # 输出: '10' (十进制)
"{:x}".format(10) # 输出: 'a' (十六进制)
"{:e}".format(10000) # 输出: '1.000000e+04' (指数表示)
"{:.1%}".format(0.14) # 输出 '14.0%'
3、格式规范符号之——宽度和精度(.)
- 宽度:指定整个字段的最小宽度,在点(.)的前面。
例如:
#在字符串右侧填充空格,以确保整个字符串的显示宽度达到10个字符
"{:10}".format("Hello") #输出:'Hello '
# 数值右对齐,总宽度5,不足前面补空格 # 输出: ' 123'
"{:5d}".format(123)
可以看到字符串默认左对齐,而数值默认右对齐
- 精度:对于浮点数,指定小数点后的位数;对于字符串,指定截取的字符数。
"{:.3f}".format(3.14159) # 输出: '3.142',保留三位小数
"{:.2}".format("Hello") # 输出: 'He',截取前两个字符
4、格式规范符号之——对齐(< ^ >),结合宽度和可选的填充字符使用
- 左对齐:
"{:<10}".format("Hello") # 左对齐,总宽度10,不足右边补空格
# 输出: 'Hello '
"{:*<10}".format("Hello") # 左对齐,总宽度10,不足右边补星号*
# 输出: 'Hello*****'
- 右对齐
"{:>10}".format("Hello") # 右对齐,总宽度10,不足左边补空格
# 输出: ' Hello'
"{:0>10}".format(42) # 右对齐,总宽度10,不足左边补0,适用于数值
# 输出: '0000000042'
"{:0>10.2f}".format(3.14159) # 右对齐,总宽度10,小数点后两位,不足左边补0
# 输出: '0000003.14'
- 居中对齐
"{:^10}".format("Hello") # 居中对齐,总宽度10,不足两边补空格
# 输出: ' Hello '
"{:=^10}".format("Hi") # 居中对齐,总宽度10,不足两边补等号=
# 输出: '====Hi===='
5、逗号(,),分隔数字的千位分隔符
"{:,}".format(1234567890) # 输出: '1,234,567,890'
6、格式化字节和位操作(b c):
b
- 二进制表示,如
"{:b}".format(10) # 输出 '1010'
c
- 字符表示,如
"{:c}".format(97) # 输出 'a'(ASCII码97对应小写字母'a')
还有其他高级应用,如
- 使用
[index]
或[start:end]
来访问元组、列表或字符串的特定元素或切片。 -
"{name} is {age} years old".format(**{'name': 'Alice', 'age': 30}) # 输出 'Alice is 30 years old'