11.1 format格式化输出

因为突然发现Python二级的考纲里还有一部分没做笔记,所以紧急加更抱歉啊😅

接下来会暂停一段时间Python第二阶段(S2)内容的更新,敬请谅解。

format() 方法的基本使用

基本语法:模板字符串.format(参数列表)

模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。

槽用{}表示,与format()中的参数列表顺序对应。

例如:

1
2
print('{}说:今天天气不错!'.format('小明'))
# 输出:小明说:今天天气不错!

又或者我们有多个参数:

1
2
print('{}说:今天天气{}!'.format('小明','不好'))
# 输出:小明说:今天天气不好!

你也可以手动指定参数,只需在{}中填写参数列表中的参数下标,例如:

1
2
print('{1}说:今天天气{0}!'.format('小明','不好'))
# 输出:不好说:今天天气小明!

如果不指定参数下标的话,槽的数量和顺序务必和参数列表中的参数对应,否则将会报错。

1
2
3
4
5
6
#你不能写:
#print('{}说:今天天气{}!'.format('小明'))

#但可以写:
print('{0}说:今天天气{0}!'.format('小明'))
# 输出:小明说:今天天气小明!

format() 方法的格式控制

上一节中我们学习了在{}中可以留空或者填写参数下标号,

语法格式:{参数序号:格式控制标记}

常见的格式控制标记有下面几种 (按从前到后顺序排列)

格式化配置项 解释 简单示例
填充 用于填充的单个字符 print('{:*>10}'.format('5')) → 输出:*********5(用*填充,总宽度10)
对齐 < 左对齐、> 右对齐、^ 居中对齐 print('{:^10}'.format('5')) → 输出: 5 (居中对齐,总宽度10)
宽度 槽的设定输出宽度 print('{:25}'.format('你好')) → 输出:你好 (总宽度25)
, 数字的千位分割符,适用于整数和浮点数 print('{:,}'.format(1234567)) → 输出:1,234,567(千位分隔)
精度 浮点数小数部分的精度或字符串的最大输出长度 print('{:.2f}'.format(3.1415)) → 输出:3.14(保留2位小数,f是类型控制符)
类型 整数类型(b/c/d/o/x/X)、浮点数类型(e/E/f/%) print('{:.1%}'.format(0.75)) → 输出:75.0%(转为百分比格式,保留1位小数)

一个用上全部控制符的例子:

1
2
print('{:*^25,.2%}'.format(123456.7890123))
# 输出: *****12,345,678.90%******

你也可以在槽中嵌套,像是这样:

1
2
3
4
a = 'TEST'
b = '*'
print('{0:{1}^25}'.format(a,b,25))
# 输出: **********TEST***********

详解:类型控制符

整数专用类型控制符(b/c/d/o/x/X)

类型符 全称/含义 适用数据 具体规则 示例代码 输出结果
d Decimal(十进制) 整数 以十进制整数输出(整数的默认格式,可省略) print('{:d}'.format(100)) 100
b Binary(二进制) 整数 以二进制整数输出(无前缀0b) print('{:b}'.format(100)) 1100100
o Octal(八进制) 整数 以八进制整数输出(无前缀0o) print('{:o}'.format(100)) 144
x Hexadecimal(十六进制) 整数 以小写十六进制输出(无前缀0x,0-9 + a-f) print('{:x}'.format(100)) 64
X Hexadecimal(大写十六进制) 整数 以大写十六进制输出(无前缀0X,0-9 + A-F) print('{:X}'.format(100)) 64
c Character(Unicode字符) 整数 将整数转为对应的Unicode字符(仅对有效Unicode编码值生效,如65→A、97→a) print('{:c}'.format(65)) A

浮点数 / 数值通用类型控制符(e/E/f/%/g/G)

类型符 全称/含义 适用数据 具体规则 示例代码 输出结果
f Fixed-point(固定小数) 浮点数/整数 以固定小数格式输出,默认保留6位小数,可通过精度控制(如.2f保留2位) print('{:.2f}'.format(3.1415)) 3.14
e Exponential(科学计数法) 浮点数/整数 以小写e的科学计数法输出,默认6位小数(如3.14e+00) print('{:.2e}'.format(1234.56)) 1.23e+03
E Exponential(大写科学计数法) 浮点数/整数 以大写E的科学计数法输出,规则同e print('{:.2E}'.format(1234.56)) 1.23E+03
% Percent(百分比) 浮点数/整数 将数值×100后加%符号,默认6位小数,可通过精度控制 print('{:.1%}'.format(0.75)) 75.0%
g General(通用格式) 浮点数/整数 自动选择fe中更简洁的形式,自动去掉末尾无效的0,默认6位有效数字 print('{:.3g}'.format(1234.56)) 1.23e+03
G General(大写通用格式) 浮点数/整数 规则同g,但科学计数法用大写E,自动去末尾无效0 print('{:.3G}'.format(123.000)) 123
Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS