Python 程序设计入门(018)—— format() 函数的用法详解
目录
- Python 程序设计入门(018)—— format() 函数的用法详解
- 一、format() 函数的基本格式
- 二、不提供 format_spec 参数
- 三、设置字符串的对齐方式(align)
- 四、设置 sign 选项
- 四、设置 \# 选项
- 五、设置 grouping_option 选项
- 六、设置 【0】和 width 选项
- 七、设置 【.precision】选项
- 八、设置 type 选项
- 1、字符串类型
- 2、整数类型
- 3、浮点型
一、format() 函数的基本格式
format() 函数可以对数据进行格式化处理,将值转换为由 format_spec 控制的【格式化】表示形式。format() 函数的语法格式如下:
(图片来源网络,侵删)format(value, format_spec)
说明:
(1)value:要转换的数据。
(图片来源网络,侵删)(2)format_spec:格式化解释,取决于值参数的类型;
(3)默认情况下,format_spec 是一个空字符串,通常与调用 str(value) 函数具有相同的效果。
(4)format_spec 参数的格式包括填充值、文字对齐、标志设置、格式化、类型转换、千位符等应用。格式如下:
format_spec ::=[fill[align]] [sign] [z] [#] [0] [width] [grouping_option] [.precision] [type] 其中: fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::= digit+ grouping_option ::= "_" | "," precision ::= digit+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X"
二、不提供 format_spec 参数
如果不提供 format_spec 参数,默认将其他格式数据转换为字符串类型,和调用 str(value) 函数的效果相同。
例如:
print("圆周率:" + format(3.14)) # 将浮点数转换为字符串 print("圆周率:" + str(3.14)) 运算结果为: ===================== RESTART: C:\Python\Python38\First.py ===================== 圆周率:3.14 圆周率:3.14
三、设置字符串的对齐方式(align)
使用如下选项设置字符串的对齐方式:
符号 含义 ‘’ 强制字段在有效空间内保持右对齐(这是大多数对象的默认设置) ‘=’ 强制将填充字符放置在符号(如果有)之后、数字之前,例如:+000000120。这种对齐选项仅对数字类型有效。当【0】紧接在字符宽度之前时,它将成为填充数字时的默认值。 ‘^’ 强制字段在有效空间内保持居中对齐 例如:
print("圆周率:" + format(3.14,"10.2f") + "|end") # 默认为右对齐 print("圆周率:" + format(3.14,">10.2f") + "|end") # 设置为右对齐 print("圆周率:" + format(3.14,"10.2f") + "|end") # 设置为右对齐,前面填充A print("圆周率:" + format(-3.14,"A>10.2f") + "|end") # 设置为右对齐,前面填充A(A位于-符号之前) print("圆周率:" + format(-3.14,"A=10.2f") + "|end") # 数字前面填充A(A位于-符号之后) 运算结果为: ===================== RESTART: C:\Python\Python38\First.py ===================== 圆周率: 3.14|end 圆周率: 3.14|end 圆周率:3.14 |end 圆周率: 3.14 |end 圆周率:AAAAAA3.14|end 圆周率:AAAAA-3.14|end 圆周率:-AAAAA3.14|end
四、设置 sign 选项
sign 选项只对数字类型有效,sign 选项的含义如下:
符号 含义 ‘+’ 表示正负数均可使用符号 ‘-’ 指示符号只被用于负数(这是默认行为) ’ ’ 表示正数应使用前导空格,负数使用负号 例如:
print("圆周率:" + format(3.14,"+") + "|end") # 正数前面加+号 print("圆周率:" + format(-3.14,"+") + "|end") # 负数前面加-号 print("圆周率:" + format(3.14,"-") + "|end") # 正数前面不加+号 print("圆周率:" + format(-3.14,"-") + "|end") # 负数前面加+号 print("圆周率:" + format(3.14," ") + "|end") # 正数前面加空格 print("圆周率:" + format(-3.14," ") + "|end") # 负数前面加-号 运算结果为: ===================== RESTART: C:\Python\Python38\First.py ===================== 圆周率:+3.14|end 圆周率:-3.14|end 圆周率:3.14|end 圆周率:-3.14|end 圆周率: 3.14|end 圆周率:-3.14|end
四、设置 # 选项
# 选项仅对整型、浮点型和负数型有效。# 选项的含义如下:
符号 含义 # # 选项仅对整型、浮点型和负数型有效。
对于整数,当使用二进制、八进制或十六进制输出时,该选项会在输出值中添加相应的前缀:0b、0o、0x 或0X。
对于浮点型和负数型,即使后面没有数字,替换形式会导致转换结果始终包含小数点字符。
对于 g 和 G 的科学计数法小数点的转换,不会从结果中删除尾随零。例如:
print("以下为整型数据的输出:") print(format(11) + "|end") # 输出结果为十进制 print(format(11,"#") + "|end") # 输出结果为十进制 print(format(11,"b") + "|end") # 输出结果为二进制 print(format(11,"#b") + "|end") # 输出结果为二进制(输入0b) print(format(11,"o") + "|end") # 输出结果为八进制 print(format(11,"#o") + "|end") # 输出结果为八进制(输入0o) print(format(11,"x") + "|end") # 输出结果为十六进制 print(format(11,"#x") + "|end") # 输出结果为十六进制(输入0x) print(format(11,"X") + "|end") # 输出结果为十六进制 print(format(11,"#X") + "|end") # 输出结果为十六进制(输入0X) print("以下为浮点型数据的输出:") print(format(11.8,"10.0f") + "|end") # 无小数点 print(format(11.8,"#10.0f") + "|end") # 有小数点 print(format(-11.8,"#10.0F") + "|end") 运算结果为: ===================== RESTART: C:\Python\Python38\First.py ===================== 以下为整型数据的输出: 11|end 11|end 1011|end 0b1011|end 13|end 0o13|end b|end 0xb|end B|end 0XB|end 以下为浮点型数据的输出: 12|end 12.|end -12.|end
五、设置 grouping_option 选项
grouping_option 选项的含义如下:
符号 含义 , 表示使用逗号作为千位分隔符。 _ 对浮点型和整型使用下划线作为千位分隔符。
对于整型 b、o、x 和 x,将每4位插入下划线。例如:
print(format(12345678) + "|end") # 不使用千位分隔符 print(format(12345678,",") + "|end") # 使用逗号作为千位分隔符 print(format(12345678.2541,",") + "|end") # 使用逗号作为千位分隔符 print(format(12345678.2541,"_") + "|end") # 使用下划线作为千位分隔符 print(format(12345678,"_b") + "|end") # 使用逗号作为千位分隔符 运算结果为: ===================== RESTART: C:\Python\Python38\First.py ===================== 12345678|end 12,345,678|end 12,345,678.2541|end 12_345_678.2541|end 1011_1100_0110_0001_0100_1110|end
六、设置 【0】和 width 选项
[0] 和 width 选项的含义如下:
符号 含义 [0]
widthwidth:定义字段总宽度,包括任何前缀、分隔符和其他格式字符。如果未指定,则字段宽度将由输出内容决定。
如果未指定对齐方式,则在宽度字段前面加一个零(0),相当于对齐类型 sign 为 = 的填充字符 0。例如:
print(format(3.14) + "|end") # 不指定宽度 print(format(3.14,"10") + "|end") # 指定宽度为10,默认右对齐 print(format(3.14,"