python怎么让输出居中_python格式化输出字符串居中
Q1:python字符串格式化什么意思
在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使⽤的是%运算符,通⽤的形式为
格式标记字符串 % 要输出的值组
其中,左边部分的”格式标记字符串“可以完全和c中的⼀致。右边的值组如果有两个及以上的值则需要⽤⼩括号括起来,中间⽤短号隔开。重点来看左边的部分。左边部分的最简单形式为:
%cdoe
其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使⽤’%s‘来标记。⽐如:
%s %s %s % (1, 2.3, [one, two, three])
它的输出为1 2.3 [one, two, three],就是按照%左边的标记输出的。虽然第⼀个和第⼆值不是string类型,
⼀样没有问题。在这个过程中,当电脑发现第⼀个值不是%s时,会先调⽤整型数的函数,把第⼀个值也就是1转成string类型,然后再调⽤str()函数来输出。前⾯说过还有⼀个repr()函数,如果要⽤这个函数,可以⽤%r来标记。除了%s外,还有很多类似的code:
整型数:%d
⽆符号整型数:\u
⼋进制:%o
⼗六进制:%x%X
浮点数:%f
科学记数法: %e%E
根据数值的不同⾃动选择%e或%f: %g
根据数值的不同⾃动选择%E或%f: %G
就跟前⾯说⽤\进⾏转义⼀样,这⾥⽤%作为格式标记的标识,也有⼀个%本⾝应该如何输出的问题。
如果要在”格式标记字符串“中输出%本⾝,可以⽤%%来表⽰。
上⾯说的只是格式标记的最简间的形式,来看复杂⼀点的:
‘%6.2f’ % 1.235、在这种形式中,在f的前⾯出现了⼀个类似⼩数的6.2它表⽰的意思是,总共输出的长度为6个字符,其中⼩数2位。还有更复杂的:
‘%06.2f’ % 1.235、在6的前⾯多了⼀个0,表⽰如果输出的位数不⾜6位就⽤0补⾜6位。这⼀⾏的输出为‘001.24’,可以看到⼩数也占⽤⼀位。类似于这⾥0这样的标记还有-、+。其中,-表⽰左对齐,+表⽰在正数前⾯也标上+号,默认是不加的。最后来看最复杂的形式:
‘%(name)s:%(score)06.1f’ %{score:9.5, name:newsim}
这种形式只⽤在要输出的内容为dictionary(⼀种python的数据类型)时,⼩括号中的(name)和(score)对应于后⾯的键值对中的键。前⾯的例⼦可以看到,”格式标记字符串“中标记的顺序和"要输出的值组"中的值是⼀⼀对应的,有顺序,⼀对⼀,⼆对⼆。⽽在这种形式中,则不是,每个格式标记对应哪个值由⼩括号中的键来指定。这⾏代码的输出为:newsim:0009.5。有时候在%6.2f这种形式中,6和2也不能事先指定,会在程序运⾏过程中再产⽣,那怎么输⼊呢,当然不能⽤%%d.%df或%d.%d%f。可以⽤%*.*f的形式,当然在后⾯的”要输出的值组“中包含那两个*的值。⽐如:%*.*f % (6, 2, 2.345)就相当于%6.2f % 2.345。
这是这本书到此为⽌看起来最复杂的内容。不过如果记不住,或不想那么耐烦,完全可以全部⽤%s代替,或者⽤多个"+"来构造类似的输出字符串。这⾥的%真有点除法的味道,怪不得设计者会选择⽤%这个除号。
printf怎么输出字符象C 中的sprintf函数⼀样,可以⽤“%”来格式化字符串
Table 3.1. 字符串格式化代码
格式描述
%%百分号标记
%c字符及其ASCII码
%s字符串
%d有符号整数(⼗进制)
\u⽆符号整数(⼗进制)
%o⽆符号整数(⼋进制)
%x⽆符号整数(⼗六进制)
%X⽆符号整数(⼗六进制⼤写字符)
%e浮点数字(科学计数法)
%E浮点数字(科学计数法,⽤E代替e)
%f浮点数字(⽤⼩数点符号)
%g浮点数字(根据值的⼤⼩采⽤%e或%f)
%G浮点数字(类似于%g)
%p指针(⽤⼗六进制打印值的内存地址)
%n存储输出字符的数量放进参数列表的下⼀个变量中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论