您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Python中如何实现数字的格式化输出?
数字,格式,小数Python中如何实现数字的格式化输出?
发布时间:2020-12-06加入收藏来源:互联网点击:
Python中如何实现数字的格式化输出?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
从Python 3.6开始,引入F-string 格式化字符串新语法。它相对于 %-formatting、 str.format() 格式化方式,它不仅更易读,更简洁,不易出错,而且速度更快。我们就以F-string 来介绍如何格式化数字。
F-string 采用 {content:format} 的形式设置字符串格式,采用默认格式时则不需要指定 {:format}。其中 content 是替换并填入字符串的内容,可以是变量、表达式或函数等,format 是格式描述符。
接下来我们介绍一下数字的自定义格式,包含对齐、宽度、符号、补零、精度、进制等。
对齐格式描述符
代码示例如下:
数字符号格式描述符
代码示例如下:
宽度与精度格式描述符
0width格式描述符不能用于复数和非数值类型,width.precision格式描述符不能用于整数类型。
width.precision格式描述符可以用于不同格式类型的浮点数、复数时的含义不同:用于 f、F、e、E 和 % 时, precision 指定的是小数点后的位数。用于 g 和 G 时 precision 指定的是有效数字位数(小数点前位数+小数点后位数)。
width.precision 除浮点数、复数外还可用于字符串,此时 precision 含义是只使用字符串中前 precision 位字符。
基本格式类型如下:
代码示例如下:
千位分隔符格式描述符
若不指定',' ,则F-string将不使用任何千位分隔符,此为默认设置。',' 仅适用于浮点数、复数与十进制整数,对于浮点数和复数,分隔的是小数点前的数位。
回答于 2019-09-11 08:43:50
在Python3版本前提下,实现数字格式化最最最常用的是format方法
一、format语法
● 语法:
格式化字符串的函数 str.format(),返回字符串类型
●其中 str的基本语法是通过 {} 和 : 来代替以前的 %
: 号后面带填充的字符
简称:填齐度,隔精类
二、Python实例说明
● 保留小数点后两位
print("{:.2f}".format(3.1415926))
# 输出结果是:3.14
● 带符号保留小数点后两位
# + 表示在正数前显示 +,负数前显示 -
print("{:+.2f}".format(3.1415926))
# 输出结果是:+3.14
print("{:+.2f}".format(-3.1415926))
# 输出结果是:-3.14
● 不带小数
print("{:.0f}".format(3.1415926))
# 输出结果是:3
● 数字补零 (填充左边, 宽度为2)
# ^, <, > 分别是居中、左对齐、右对齐,后面带宽度
print("{:0>2d}".format(3))
# 输出结果是:03
● 数字补x (填充右边, 宽度为11)
print("{:x<11d}".format(1552742))
# 输出结果:1552742xxxx
● 以逗号分隔的数字格式
print("{:,}".format(1000228))
# 输出结果:1,000,228
● 百分比格式
print("{:.2%}".format(0.258))
# 输出结果:25.80%
● 指数记法
print("{:.2e}".format(1200))
#输出结果: 1.20e+03
● 进制转换
b、d、o、x 分别是二进制、十进制、八进制、十六进制
三、展望
合理利用format函数,在Python处理字符串时将如履平地。赶紧get这个Python小技巧吧。
回答于 2019-09-11 08:43:50
格式化输出单个数字的时候,可以使用内置的 函数,比如:
>>> x = 1234.56789
>>> # Two decimal places of accuracy
>>> format(x, '0.2f') #无空格,小数保留2位
'1234.57'
>>> # Right justified in 10 chars, one-digit accuracy
>>> format(x, '>10.1f') #数字输出靠右,总计长度为10,小数保留1位
' 1234.6'
>>> # Left justified
>>> format(x, '<10.1f') #数字输出靠左,总计长度为10,小数保留1位
'1234.6 '
>>> # Centered
>>> format(x, '^10.1f') #数字输出靠中,小数保留2位
' 1234.6 '
>>> # Inclusion of thousands separator
>>> format(x, ',') #指定逗号位数字的千分位分隔符
'1,234.56789'
>>> format(x, '0,.1f') #无占位输出,用逗号作为分隔符,保留1位小数
'1,234.6'
>>>
########################################################
# Note:
#
当时指定的小数位比真实小数位少时默认会显示四舍五入好的效果,与round的效果是相同的
########################################################
如果你想使用指数记法,将f改成e或者E(取决于指数输出的大小写形式)。比如:
1 >>> format(x, 'e') #指定为科学计数法
2 '1.234568e+03'
3 >>> format(x, '0.2E') #指定科学计数法和小数表达式的小数位数
4 '1.23E+03'
5 >>>
同时指定宽度和精度的一般形式是 , 其中 和 为整数,?代表可选部分。 同样的格式也被用在字符串的 方法中。比如:
上一篇:移民美国后的华人可以回到中国长期工作生活吗?有期限吗?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |