无名 发表于 2022-5-8 15:55:23

【FX】Python入门基础(二十二)Python格式化字符串


http://cdn.u1.huluxia.com/g4/M00/06/6F/rBAAdmDqgQGAZ0EcAAJTyikZ9mg058.jpg
http://cdn.u1.huluxia.com/g4/M00/06/6F/rBAAdmDqgQKAaxHPAADEIKhupCE730.png
print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。http://cdn.u1.huluxia.com/g4/M00/06/6F/rBAAdmDqgQKAGx96AASNnEBz8sE421.png
转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。http://cdn.u1.huluxia.com/g4/M00/06/6F/rBAAdmDqgQOAU8SYAAD6nFKDais100.png
在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%d说明符,它最终会被后面的 age 变量的值所替代。

中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。

当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号( )包围起来。请看下面的例子:http://cdn.u1.huluxia.com/g4/M00/06/6F/rBAAdmDqgQSAaEDSAAF7c9nCkC8666.png
总之,有几个占位符,后面就得跟着几个表达式。指定最小输出宽度
当使用表1中的转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置):
%10d 表示输出的整数宽度至少为 10;
%20s 表示输出的字符串宽度至少为 20。http://cdn.u1.huluxia.com/g4/M00/06/70/rBAAdmDqgQSAX7J1AAIDEY_0754246.png
从运行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。

你看,这里指定的只是最小宽度,当数据的实际宽度足够时,指定的宽度就没有实际意义了。
指定对齐方式
默认情况下,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python 支持的标志如下:http://cdn.u1.huluxia.com/g4/M00/06/70/rBAAdmDqgQWAYP_TAAFcQX8bDcI348.png
几点说明:
对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。
对于小数,以上三个标志可以同时存在。
对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。http://cdn.u1.huluxia.com/g4/M00/06/70/rBAAdmDqgQWAObLkAAMW_CmslYM444.png
指定小数精度
对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。

精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:
%m.nf
%.nf

m 表示最小宽度,n 表示输出精度,.是必须存在的。http://cdn.u1.huluxia.com/g4/M00/06/70/rBAAdmDqgQaABC2WAAJGctMplc4203.png
页: [1]
查看完整版本: 【FX】Python入门基础(二十二)Python格式化字符串