python对浮点类型的数据进⾏格式化_全⽹最细Python格式化
输出⽤法讲解(推荐)...
⼀、使⽤ print() 函数
在 Python 中,print() 函数⽀持格式化输出,与 C 语⾔的 printf 类似。
1. 格式化输出字符串和整数
【⽰例1】输出字符串 AmoXiang,并计算、输出它的字符长度
str1 = "%s.length = %d" % ("AmoXiang", len("AmoXiang"))
print(str1) # 输出AmoXiang.length = 8
% 在字符串中表⽰格式化操作符,它后⾯必须附加⼀个格式化符号,具体说明如下表所⽰。
%()元组可以包含⼀个或多个值,如变量或表达式,⽤来向字符串中%操作符传递值,元组包含元素数量、顺序都必须与字符串中%操作符⼀⼀对应,否则将抛出异常。%()元组必须位于字符串的后⾯,否则⽆效。如果字符串中只包含⼀个%操作符,那么也可以直接传递值。例如:
str1 = "AmoXiang.length = %d" % len("AmoXiang")
print(str1) # 输出AmoXiang.length = 8
2. 格式化输出不同进制数
【⽰例2】使⽤ print() 函数把数字输出为⼗六进制、⼗进制、⼋进制格式的字符串。
num = 123
# 输出:Hex = 7b Dec = 123 Oct=173
print("Hex = %x Dec = %d Oct=%o" % (num, num, num))
补充:整数类型包括⼗进制整数、⼋进制整数、⼗六进制整数和⼆进制整数。
⼗进制的整数不能以 0 开头。⼋进制整数由 0~7 组成,逢⼋进⼀,以 0o 或 0O 开头,例如:0o23⼗
六进制整数由 0~9 以及 a~f 组成,逢⼗六进⼀,以 0x 或 0X 开头。例如:0x23⼆进制整数由 0 和 1组成,逢⼆进⼀,以 0b 或 0B 开头。例如:0b101关于进制这个知识点不懂的读者可以点击 进制转换 学习
3. 格式化输出浮点数
【⽰例3】把数字输出为不同格式的浮点数字符串。
PI = 3.141592653
print("pi1 = %10.3f" % PI) # 总宽度为10,⼩数位精度为3
print("pi2 = %.*f" % (3, PI)) # *表⽰从后⾯的元组中读取3,定义精度
print("pi3 = %010.3f" % PI) # ⽤0填充空⽩
print("pi4 = %-10.3f" % PI) # 左对齐,总宽度10个字符,⼩数位精度为3
print("pi5 = %+f" % PI) # 在浮点数前⾯显⽰正号
程序运⾏结果如下:
在格式化输出数字或字符串时,可以附加辅助指令来完善格式化操作。具体说明如下表所⽰:
⼆、使⽤ str.format() ⽅法
% 操作符是传统格式化输出的基本⽅法,从 Python 2.6 版本开始,为字符串数据新增了⼀种格式化⽅法 str.format(),它通过 {} 操作符和 : 辅助指令来代替 % 操作符。
【⽰例1】通过位置索引值
print('{0} {1}'.format('Python', 3.7)) # Python 3.7
print('{} {}'.format('Python', 3.7)) # Python 3.7
print('{1} {0} {1}'.format('Python', 3.7)) # 3.7 Python 3.7
在字符串中可以使⽤ {} 作为格式化操作符。与 % 操作符不同的是,{} 操作符可以通过包含的位置值⾃定义引⽤值的位置,也可以重复引⽤。
【⽰例2】通过关键字索引值
# 输出:Amo年龄是18岁。
print('{name}年龄是{age}岁。'.format(age=18, name="Amo"))
【⽰例3】通过下标进⾏索引
L = ["Jason", 30]
# 输出:Jason年龄是30岁。
print('{0[0]}年龄是{0[1]}岁。'.format(L))
通过使⽤ format() 函数这种便捷的 映射 ⽅式,列表和元组可以 打散 成普通参数传递给 format() ⽅法,字典可以打散成关键字参数给⽅法。format() ⽅法包含丰富的格式限定符,附带在 {} 操作符中 : 符号的后⾯。
1. 填充与对齐
: 符号后⾯可以附带填充的字符,默认为空格, ^、 分别表⽰居中、左对齐、右对齐,后⾯附带宽度限定值。
【⽰例4】下⾯⽰例设计输出 8 位字符,并分别设置不同的填充字符和值对齐⽅式。
print('{:>8}'.format('1')) # 总宽度为8,右对齐,默认空格填充
print('{:0>8}'.format('1')) # 总宽度为8,右对齐,使⽤0填充
print('{:a<8}'.format('1')) # 总宽度为8,左对齐,使⽤a填充
程序运⾏结果如下:
2. 精度与类型f
【⽰例5】f 与 float 类型数据配合使⽤
print('{:.2f}'.format(3.141592653)) # 输出结果:3.14
其中 .2f 表⽰⼩数点后⾯的精度为 2,f 表⽰浮点数输出。
3. 进制数字输出
【⽰例6】使⽤b、d、o、x 分别输出⼆进制、⼗进制、⼋进制、⼗六进制数字。
num = 100
print('{:b}'.format(num)) # 1100100
print('{:d}'.format(num)) # 100
print('{:o}'.format(num)) # 144
print('{:x}'.format(num)) # 64
4. 千位分隔输出
【⽰例7】使⽤逗号(,)输出⾦额的千分位分隔符。
print('{:,}'.format(1234567890)) # 1,234,567,890
三、详解 format() 函数
format()函数可以对数据进⾏格式化处理操作。语法格式如下:
format_spec为格式化解释。当参数 format_spec 为空时,等同于函数 str(value) 的⽅式。value 为要转换的数据。format_ spec 可以设置⾮常复杂的格式转换参数,⽣成⽐较完备的数据格式处理模板。format_spec 的编写⽅式如下形式:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
format_spec 格式控制符可以分为⽂字对齐、填充值、标志设置、格式化、类型转换、千位符(数字分组)等主要应⽤。细化分类说明如下图所⽰:
参数说明:
(1) fill(填充值):此处可以填写任何字符,通常与align、width⼀起使⽤,实现指定位数字符填充,通常格式如图1.2所⽰,填充效果及位置如图1.3所⽰。
通常⽤ 0、*、#、@ 等进⾏填充。如果不写填充值,则使⽤默认填充值,默认填充值为空格。代码如下:
# 81@@@@@@@@
print(format(81, '@<10')) # ⽤@符号填充,宽度为10个空格
# @@@@@@@@81
print(format(81, '@>10')) # ⽤@符号填充,宽度为10个空格
(2) align(对齐⽅式):指在 width(数字宽度) 内输出时的对齐⽅式,分别使⽤ 、^、= 4个符号表⽰左对齐、右对齐、居中对齐和数字填充(只⽤于数字,在符号后进⾏补齐)。
(3) width(数字宽度):指设定输出字符宽度,如果数据的实际位数⽐ width 指定宽度值⼤,则使⽤数据实际的长度。如果该值的实际位数⼩于指定宽度,则位数将设定的 fill 值填充或设定的 0 值填充,如果没有设置填充值,则⽤空格填充。
s = "PYTHON"
print(format(s, '10')) # 没有标志符,如果是字符串则默认左对齐,不⾜宽度部分默认⽤空格填充
print(format(13.14, '10')) # 没有标志符,如果是数字则默认右对齐,不⾜宽度部分默认⽤空格填充
浮点型变量floatprint(format(s, '0>10')) # 右对齐,不⾜指定宽度部分⽤0填充
print(format(s, '>04')) # 右对齐,因字符实际宽度⼤于指定宽度4,不⽤填充
print(format(s, '*>10')) # 右对齐,不⾜部分⽤"*"填充
print(format(s, '>010')) # 右对齐,不⾜部分⽤0填充
print(format(s, '>10')) # 右对齐,默认⽤空格填充
print(format(s, '<10')) # 左对齐,默认⽤空格填充
print(format(s, '<010')) # 左对齐,不⾜部分⽤0填充
print(format(s, '@^10')) # 中间对齐,不⾜部分⽤'@'填充,宽度为10个空格
print(format(13.14, '0<10')) # 左对齐,不⾜部分⽤0填充
print(format(13.14, '@^10')) # 中间对齐,不⾜部分⽤@填充
print(format(13.14, '0>10')) # 右对齐,不⾜部分⽤0填充
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论