f-string采用 {content:format} 设置字符串格式,其中 content 是替换并填入字符串的内容,可以是变量、表达式或函数等,format是格式描述符。采用默认格式时不必指定 {:format},如上面例子所示只写 {content} 即可。
关于格式描述符的详细语法及含义可查阅Python官方文档,这里按使用时的先后顺序简要介绍常用格式描述符的含义与作用:
对齐相关格式描述符
| 格式描述符 | 含义与作用 |
|---|---|
| < | 左对齐(字符串默认对齐方 |
| > | 右对齐(数值默认对齐方式) |
| ^ | 居中 |
| 数字符号相关格式描述符 | |
| 格式描述符 | 含义与作用 |
| :----: | :----: |
| + | 负数前加负号(-),正数前加正号(+) |
| - | 负数前加负号(-),正数前不加任何符号(默认) |
| (空格) | 负数前加负号(-),正数前加一个空格 |
注:仅适用于数值类型。
数字显示方式相关格式描述符
| 格式描述符 | 含义与作用 |
|---|---|
| # | 切换数字显示方式 |
注1:仅适用于数值类型.
注2:# 对不同数值类型的作用效果不同,详见下表:
| 数值类型 | 不加#(默认) | 加# | :区别 |
|---|---|---|---|
| 二进制整数 | '1111011' | '0b1111011' | 开头是否显示 0b |
| 八进制整数 | '173' | '0o173' | 开头是否显示 0o |
| 十进制整数 | '123' | '123' | 无区别 |
| 十六进制整数(小写字母) | '7b' | '0x7b' | 开头是否显示 0x |
| 十六进制整数(大写字母) | '7B' | '0X7B' | 开头是否显示 0X |
| 宽度与精度相关格式描述符 | |||
| 格式描述符 | 含义与作用 | ||
| :----: | :----: | ||
| width | 整数 width 指定宽度 | ||
| 0width | 整数 width 指定宽度,开头的 0 指定高位用 0 补足宽度 | ||
| width | .precision 整数 width 指定宽度,整数 precision 指定显示精度 |
注1:0width 不可用于复数类型和非数值类型,width.precision 不可用于整数类型。
注2:width.precision 用于不同格式类型的浮点数、复数时的含义也不同:用于 f、F、e、E 和 % 时 precision 指定的是小数点后的位数,用于 g 和 G 时 precision 指定的是有效数字位数(小数点前位数+小数点后位数)。
注3:width.precision 除浮点数、复数外还可用于字符串,此时 precision 含义是只使用字符串中前 precision 位字符。
千位分隔符相关格式描述符
| 格式描述符 | 含义与作用 |
|---|---|
| , | 使用,作为千位分隔符 |
| _ | 使用_作为千位分隔符 |
注1:若不指定 , 或 _,则f-string不使用任何千位分隔符,此为默认设置。
注2:, 仅适用于浮点数、复数与十进制整数:对于浮点数和复数,, 只分隔小数点前的数位。
注3:_ 适用于浮点数、复数与二、八、十、十六进制整数:对于浮点数和复数,_ 只分隔小数点前的数位;对于二、八、十六进制整数,固定从低位到高位每隔四位插入一个 _(十进制整数是每隔三位插入一个 _)。
格式类型相关格式描述符
| 格式描述符 | 含义与作用 | 适用变量类型 |
|---|---|---|
| s | 普通字符串格式 | 字符串 |
| b | 二进制整数格式 | 整数 |
| c | 字符格式,按unicode编码将整数转换为对应字符 | 整数 |
| d | 十进制整数格式 | 整数 |
| o | 八进制整数格式 | 整数 |
| x | 十六进制整数格式(小写字母) | 整数 |
| X | 十六进制整数格式(大写字母) | 整数 |
| e | 科学计数格式,以 e 表示 ×10^ | 浮点数、复数、整数(自动转换为浮点数) |
| E | 与 e 等价,但以 E 表示 ×10^ | 浮点数、复数、整数(自动转换为浮点数) |
| f | 定点数格式,默认精度(precision)是6 | 浮点数、复数、整数(自动转换为浮点数) |
| F | 与 f 等价,但将 nan 和 inf 换成 NAN 和 INF | 浮点数、复数、整数(自动转换为浮点数) |
| g | 通用格式,小数用 f,大数用 e | 浮点数、复数、整数(自动转换为浮点数) |
| G | 与 G 等价,但小数用 F,大数用 E | 浮点数、复数、整数(自动转换为浮点数) |
| % | 百分比格式,数字自动乘上100后按 f 格式排版,并加 % 后缀 | 浮点数、整数(自动转换为浮点数) |