Python基础之输出格式
文章目录
- 一、 数字格式化----%
- 二、 字符串格式化----format()方法
- 1、字符串format()方法的基本用法
- 2、字符串format()方法的格式控制
一、 数字格式化----%
水果市场上有香甜美味的奶油,如果采购5.5kg奶油,每千克的价格为2.35元,那么要支付多少钱。很简单2.35×5.5=12.925元,利用Python表示方法如下:
print("2.35×5.5=",2.35*5.5)
---------------------------------------
2.35×5.5= 12.925
python 默认会保留最高6位小数,如果需要显示2位小数,如何操作?
“字符串文字与格式化指令”%(数字或字符、数字或字符、数字或字符)
| 格式化指令 | 描述 |
|---|---|
| %d | 整数 |
| %f | 浮点数 |
| %s | 字符串 |
print("%.2f"%(2.35*5.5))
--------------------------
12.93
宽度.小数位
%10f-----10个字符宽度的浮点数(如果不足前面使用空格补齐)
%10.2f-----10个字符宽度并且带2个小数位的浮点数
%.2-----2个小数位的浮点数
%10s-----使用10个字符的宽度显示,如果不足在左边补齐空格(右对齐)
%-10s-----使用10个字符的宽度显示,如果不足在右边补齐空格(左对齐)
print("%.1f千克 %.2fn%.1f千克 %.2fn%.1f千克 %.2fn"%(1.5,2.35*1.5,5.5,2.35*5.5,10,2.35*10))
------------------------------------------------------------------------------------
1.5千克 3.53
5.5千克 12.93
10.0千克 23.50
重复部分可以用*复用,使得数字对齐,%左侧的格式公式中使用5个字符的宽度显示数量,使用8个字符的宽度显示价格,这样左边不足的部分会直接使用空格补齐,从而实现对齐的效果。%右侧所有的数字使用括号依次括起来,需要计算的部分直接编写算式。修改后代码如下:
print("%5.1f千克 %8.2fn"*3 %(1.5,2.35*1.5,5.5,2.35*5.5,10,2.35*10))
------------------------------------------------------------------------
1.5千克 3.53
5.5千克 12.93
10.0千克 23.50
二、 字符串格式化----format()方法
1、字符串format()方法的基本用法
<模板字符串>.format(<逗号分隔的参数>)
模板字符串由系列槽组成,用来控制修改字符串中嵌入值出现的位置,槽用{}表示。如果大括号中没有序号,则按照出现顺序替换,如果使用了序号,则按照序号对应参数替换,参数从0开始编号,调用format()方法返回的是一个新的字符串。
"{}:计算机{}的CPU占有率为{}%".format("2016-12-22","python",10)
---------------------------------------------------------------
输出结果
'2016-12-22:计算机python的CPU占有率为10%'
"{} {}".format("hello", "world")
"{0} {1}".format("hello", "world")
"{1} {0} {1}".format("hello", "world")
-------------------------------------------------------------------
输出结果
'hello world'
'hello world'
'world hello world'
format()方法非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{{表示,}}表示},
"圆周率{{{1}{2}}}是{0}".format("无理数", 3.1415926,"....")
'数字{{{1}{2}}}和{0}'.format("123",456,'789')
--------------------------------------------------------------
输出结果:
'圆周率{3.1415926....}是无理数'
'数字{456789}和123'
2、字符串format()方法的格式控制
{<参数序号>:<格式控制标记>}
格式控制标记如下:
{:<填充><对齐><宽度><,><.精度><类型>}
<填充>:宽度内除了参数外的字符采用什么方式表示,默认采用空格填充。
<对齐>:指参数在宽度内输出时的对齐方式,分别采用<、>和^3个符号表示左对齐、右对齐和居中,默认左对齐。
<宽度>:指当前设定输出字符的宽度,若实际字符位数小于指定宽度,则以空格字符补充。
s="python"
"{0:30}".format(s) #默认左对齐
"{0:>30}".format(s) #右对齐
"{0:*^30}".format(s) #居中且使用*填充
"{0:-^30}".format(s) #居中且使用-填充
------------------------------------------------
输出结果:
'python '
' python'
'************python************'
'------------python------------'
<,>:用于显示数字类型的千位分隔符。
"{0:-^20,}".format(1234567890)
"{0:-^20}".format(1234567890)
"{0:-^20,}".format(12345.67890)
------------------------------------------------------
输出结果:
'---1,234,567,890----'
'-----1234567890-----'
'----12,345.6789-----'
<.精度>:由小数点开头,对于浮点数,精度表示小数部分输出的有效位数,对于字符串,精度表示输出的最大长度。
"{0:.2f}".format(12345.67890)
"{0:H^20.3f}".format(12345.67890)
"{0:.4}".format("python") #对于字符串,精度表示输出最大长度
----------------------------------------------------------
输出结果:
'12345.68'
'HHHHH12345.679HHHHHH'
'pyth'
<类型>:表示输出整数和浮点数类型的格式规则,对于整数类型,输出格式有6种。
(1)b:输出整数的二进制方式。
(2)c:输出整数对应的Unicode字符。
(3)d:输出整数的十进制方式。
(4)o:输出整数的八进制方式。
(5)x:输出整数的小写十六进制方式。
(6)X:输出整数的大写十六进制方式。
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
-------------------------------------------------------
输出结果:
'110101001,Ʃ,425,651,1a9,1A9'
对于浮点数类型,输出格式有4中。
(1)e:输出浮点数对应的小写字母e的指数形式。
(2)E:输出浮点数对应的大写字母E的指数形式。
(3)f:输出浮点数的标准浮点形式。
(4)%:输出浮点数的百分形式。
浮点数输出时尽量使用<.精度>表示小数部分的宽度,有助于更好控制输出格式。
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14159)
-------------------------------------------------------
输出结果:
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
'3.14e+00,3.14E+00,3.14,314.16%'



