format spec 格式控制符可以分为文字对齐、填充值、标志设置、格式化、类型转换、千位符(数字分组)等主要应用。
format()可以对数据进行格式化处理操作,语法如下:
format(value,format_spec)
value 为要转换的数据,
fommat spec 为格式化解释,
当参数 format spec 为空时,等同于函数 str(value)的方式。
format spec 可以设置非常复杂的格式转换参数,实现比较完备的数据格式处理模板。fomat spec的编写方式如下形式:
format_spec ::=[[fill]align][sign][#][@][width][,][.precision][typel]
对数据进行编号,也是对字符串格式化操作的一种方式,使用format()函数可以对字符串进行格式化编号。
实现时只需设置填充字符(编号通常设置0),
设置对齐方式时可以使用<、>和符号表示左对齐、右对齐和居中对齐,
对齐填充的符号在“宽度”范围内输出时填充即可。
例如:对数字1进行3 位编号靠右对齐
#向右对齐,空位补0,长度为3
print(format(1,'0>3'))
#输出结果为:001
#向左对齐,空位补0,长度为3
print(format(1,'0<3'))
#输出结果为: 100
#8位整数显示,不足部分整数前用空格填充
print(format(81,'8d'))
# 格式化为8位带符号整数显示,补位空格放到符号前
print(format(-81,'8d'))
# 格式化为8位正整数,用空格补位
print(format(81,'=8d'))
# 格式化为8位负整数,不足部分在负号后填充
print(format(-81,'=8d'))
# 右对齐,宽度为18个空格
print(format(81,'>10'))
# 左对齐,宽度为18个空格
print(format(81,'<10'))
# 用0填充空格,宽度为10个空格
print(format(81,'010'))
#输出结果
81
-81
81
- 81
81
81
0000000081
可以提供的参数有“e”,“E”,“f”,“F”,“g”,"G“,"n”,“%”和None输出格式。
用f表示浮点类型,并可以在其前边加上精度控制
用于控制输出宽度(如果输出位数大于宽度,就按实际位数输出)。
还可以为浮点数指定符号,
+表示在正数前显示 +,
负数前显示 -
(空格)表示在正数前加空格,在负数前加 -
例如:
#格式化为保留1位小数的浮点数
print(format(3.14159,'.1f'))
#格式化为保留2位小数的浮点数
print(format(3.14159,'.2f'))
# 格式化为保留2位小数的10位数、默认用空格填充
print(format(-3.14159,'=10.2f'))
# 格式化为保留2位小数的10位数,空格用0填充
print(format(-3.14159,'0=10.2f'))
# 保留2位小数的10位数,居中显示,空格用0填充
print(format(-3.14159,'0^10.2f'))
#输出结果
3.1
3.14
- 3.14
-000003.14
00-3.14000
主要包括截取字符串,字符串对齐方式显示,填充字符串等
#截取3个字符,宽度为20居中,不足用“0”填充“”
print(format("PYTHON",'0^20.3'))
#默认居左显示,不足部分用空格填充
print(format("PYTHON",'10'))
#输出
00000000PYT000000000
PYTHON
附源码:
# -*- coding: utf-8 -*-
# @Time : 2023/8/30 9:50
# @Author : 寒山独见君
def example1():
# 向右对齐,空位补0,长度为3
print(format(1, '0>3'))
# 输出结果为:001
# 向左对齐,空位补0,长度为3
print(format(1, '0<3'))
# 输出结果为: 100
def example2():
# 8位整数显示,不足部分整数前用空格填充
print(format(81, '^8d'))
# 格式化为8位带符号整数显示,补位空格放到符号前
print(format(-81, '^8d'))
# 格式化为8位正整数,用空格补位
print(format(81, '=8d'))
# 格式化为8位负整数,不足部分在负号后填充空格
print(format(-81, '=8d'))
# 右对齐,宽度为18个空格
print(format(81, '>10'))
# 左对齐,宽度为18个空格
print(format(81, '<10'))
# 用0填充空格,宽度为10个空格
print(format(81, '010'))
def example3():
# 格式化为保留1位小数的浮点数
print(format(3.14159, '.1f'))
# 格式化为保留2位小数的浮点数
print(format(3.14159, '.2f'))
# 格式化为保留2位小数的10位数、默认用空格填充
print(format(-3.14159, '=10.2f'))
# 格式化为保留2位小数的10位数,空格用0填充
print(format(-3.14159, '0=10.2f'))
# 保留2位小数的10位数,居中显示,空格用0填充
print(format(-3.14159, '0^10.2f'))
def example4():
print("长度:",len(str))
if __name__ == '__main__':
example1()
example2()
example3()
# 001
# 100
# 81
# -81
# 81
# - 81
# 81
# 81
# 0000000081
# 3.1
# 3.14
# - 3.14
# -000003.14
# 00-3.14000