夜光带你走进python开发 (十八)传奇语言

夜光序言:

I wanna always stay with you我想永远陪着你

I wanna hold you tight right now我现在想抱紧你

I swear l will wipe your tears我发誓一定不让你受委屈

I give you eyery thing I have把我和我的一切都给你

 

正文:私密文档

Python 语言中字符串的格式化方法。

Python提供两种字符串格式方法。一种类似 C 语言的格式化方法,使用%;

另一种采用 format()方法,Python 推荐使用这种。

这里夜光介绍 Python 推荐的 format()方法,相比 C 语言风格格式化方法,该方法能力更强、更直观、更容易格式化组合数据类型。

 


 

字符串类型格式化采用 format()方法,基本使用格式是:

<模板字符串>.format(<逗号分隔的参数>) 
<模板字符串>由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将 format()方法的<逗号分隔的参数>中的参数按照序号关系替换到<模板字符串>的槽中。

槽用大括号({})表示,如果大括号中没有序号,则按照出现顺序替换


 

如果大括号中指定了使用参数的序号,按照序号对应参数替换,如图 3.2 所示。调用 format()方法后会返回一个新的字符串,参数从 0 开始编号。

例如:

>>>"{}:计算机{}的 CPU 占用率为{}%。".format("2019-12-31","PYTHON",10) 
'2019-12-31:计算机 PYTHON 的 CPU 占用率为 10%。'

format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示},例如:

 

>>>"{}{}{}".format("圆周率是",3.1415926,"...") 
'圆周率是 3.1415926...'
>>>"圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...") 
'圆周率{3.1415926...}是无理数'
>>>s="圆周率{{{1}{2}}}是{0}" #大括号本身是字符串的一部分
>>>s 
'圆周率{{{1}{2}}}是{0}' 
>>>s.format("无理数",3.1415926,"...") #当调用 format()时解析大括号
'圆周率{3.1415926...}是无理数'

format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下:
{<参数序号>: <格式控制标记>} 

其中,<格式控制标记>用来控制参数显示时的格式,如图 3.3 所示。

<格式控制标记>包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用,逐一介绍如下。

<填充>、<对齐>和<宽度>是 3 个相关字段。<宽度>指当前槽的设定输出字符宽度,如果该槽对应的 format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。<对齐>指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。

<填充>指<宽度>内除了参数外的字符采用什么方式表示,默认采用空格,可以通过<填充>更换。例如:

>>>s = "PYTHON" 
>>>"{0:30}".format(s) 
'PYTHON ' 
>>>"{0:>30}".format(s)
' PYTHON' 
>>>"{0:*^30}".format(s) 
'************PYTHON************' 
>>>"{0:-^30}".format(s) 
'------------PYTHON------------' 
>>>"{0:3}".format(s)
'PYTHON'

<格式控制标记>中逗号(,)用于显示数字的千位分隔符,例如:

>>>"{0:-^20,}".format(1234567890) 
'---1,234,567,890----' 
>>>"{0:-^20}".format(1234567890) #夜光:对比输出
'-----1234567890-----' 
>>>"{0:-^20,}".format(12345.67890) 
'----12,345.6789-----'

<.精度>表示两个含义,由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。

>>>"{0:.2f}".format(12345.67890) 
'12345.68' 
>>>"{0:H^20.3f}".format(12345.67890)
'HHHHH12345.679HHHHHH' 
>>>"{0:.4}".format("PYTHON")
'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%'

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值