format格式化字符串
1、语法结构
字符串类型格式化采⽤format()⽅法,基本使⽤语法结构是:
<;模板字符串>.format(<;逗号分隔的参数>)
调⽤format()⽅法后会返回⼀个新的字符串,参数从索引0 开始。
"{}:计算机{}的CPU 占⽤率为{}%。".format("2016-12-31","PYTHON",10)
#'2016-12-31:计算机PYTHON的CPU 占⽤率为10%。'
format()⽅法可以⾮常⽅便地连接不同类型的变量或内容,如果需要输出⼤括号,采⽤{{表⽰{,}}表⽰},例如:
"圆周率{{{1}{2}}}是{0}".format("⽆理数",3.1415926,"...") #⼤括号本⾝是字符串的⼀部分,当调⽤format()时解析⼤括号
# '圆周率{}是⽆理数'
2、格式控制信息
format()⽅法中<;模板字符串>除了包括参数序号,还可以包括格式控制信息。此时,内部样式如下:
{<;参数序号>: <;格式控制标记>}
其中,<;格式控制标记>⽤来控制参数显⽰时的格式,包括:<;填充><;对齐><;宽度>,<.精度><;类型>6 个字段,这些字段都是可选的,可以组合使⽤,逐⼀介绍如下。
<;宽度>
指当前设定输出字符宽度,如果该对应的format()参数长度⽐<;宽度>设定值⼤,则使⽤参数实际长度。如果该值的实际位数⼩于指定宽度,则位数将被默认以空格字符补充。
<;对齐>
指参数在<;宽度>内输出时的对齐⽅式,分别使⽤<、>和^三个符号表⽰左对齐、右对齐和居中对齐。
<;填充>
指<;宽度>内除了参数外的字符采⽤什么⽅式表⽰,默认采⽤空格,可以通过<;填充>更换。
s = "PYTHON"
"{0:30}".format(s) #指定宽度为30,默认以空格填充
# 'PYTHON '
"{0:>30}".format(s) #指定宽度为30,默认以空格填充,右对齐
# ' PYTHON'
"{0:*^30}".format(s) #指定宽度为30,设置以*填充,并居中
#'************PYTHON************'
"{0:-^30}".format(s) #指定宽度为30,设置以*填充,并居中
#'------------PYTHON------------'
"{0:3}".format(s) #指定宽度为3,实际字符⽐默认宽度⼤,显⽰实际输出
#: 'PYTHON'
逗号(,)
<;格式控制标记>中逗号(,)⽤于显⽰数字的千位分隔符,例如:
"{0:-^20,}".format(1234567890)
# '---1,234,567,890----'
"{0:-^20}".format(1234567890) #对⽐输出,千分号,
# '-----1234567890-----'
"{0:-^20,}".format(12345.67890)
#: '----12,345.6789-----'
<.精度>
表⽰两个含义,由⼩数点(.)开头。对于浮点数,精度表⽰⼩数部分输出的有效位数。对于字符串,精度表⽰输出的最⼤长度。格式化命令format参数
"{0:.2f}".format(12345.67890)
#: '12345.68'
"{0:H^20.3f}".format(12345.67890)
#: 'HHHHH12345.679HHHHHH'
"{0:.4}".format("PYTHON") #指定宽度为4,实际字符⽐默认宽度⼤,但是使⽤.,所以最⼤的输出长度即为4 #: 'PYTH'
<;类型>
表⽰输出整数和浮点数类型的格式规则。对于整数类型,输出格式包括6 种:
b: 输出整数的⼆进制⽅式;
c: 输出整数对应的 Unicode 字符;
d: 输出整数的⼗进制⽅式;
o: 输出整数的⼋进制⽅式;
x: 输出整数的⼩写⼗六进制⽅式;
X: 输出整数的⼤写⼗六进制⽅式;
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
# '110101001,Ʃ,425,651,1a9,1A9'
对于浮点数类型,输出格式包括4 种:
e: 输出浮点数对应的⼩写字母 e 的指数形式;
E: 输出浮点数对应的⼤写字母 E 的指数形式;
f: 输出浮点数的标准浮点形式;
%: 输出浮点数的百分形式。
浮点数输出时尽量使⽤<.精度>表⽰⼩数部分的宽度,有助于更好控制输出格式。"{0:e},{0:E},{0:f},{0:%}".format(3.14)
# '3.140000e+00,3.140000E+00,3.140000,314.000000%'
"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
# '3.14e+00,3.14E+00,3.14,314.00%'

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。