网站备案在哪个网站,wordpress页面编辑器,员工信息查询系统,wordpress 上传绕过Python格式化字符串#xff08;格式化输出#xff09;
我们之前讲到过 print() 函数的用法#xff0c;这只是最简单最初级的形式#xff0c;print() 还有很多高级的玩法#xff0c;比如格式化输出#xff0c;这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够…Python格式化字符串格式化输出
我们之前讲到过 print() 函数的用法这只是最简单最初级的形式print() 还有很多高级的玩法比如格式化输出这就是本节要讲解的内容。 熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数它们是非常类似的。 print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出具体请看下表。
转换说明符解释%d、%i转换为带符号的十进制整数%o转换为带符号的八进制整数%x、%X转换为带符号的十六进制整数%e转化为科学计数法表示的浮点数e 小写%E转化为科学计数法表示的浮点数E 大写%f、%F转化为十进制浮点数%g智能选择使用 %f 或 %e 格式%G智能选择使用 %F 或 %E 格式%c格式化字符及其 ASCII 码%r使用 repr() 函数将表达式转换为字符串%s使用 str() 函数将表达式转换为字符串
转换说明符Conversion Specifier只是一个占位符它会被后面表达式变量、常量、数字、字符串、加减乘除等各种形式的值代替。
【实例】输出一个整数
age 8
print(C语言中文网已经%d岁了 % age)运行结果
C语言中文网已经8岁了在 print() 函数中由引号包围的是格式化字符串它相当于一个字符串模板可以放置一些转换说明符占位符。本例的格式化字符串中包含一个%d说明符它最终会被后面的 age 变量的值所替代。
中间的%是一个分隔符它前面是格式化字符串后面是要输出的表达式。
当然格式化字符串中也可以包含多个转换说明符这个时候也得提供多个表达式用以替换对应的转换说明符多个表达式必须使用小括号( )包围起来。请看下面的例子
name C语言中文网
age 8
url http://c.biancheng.net/
print(%s已经%d岁了它的网址是%s。 % (name, age, url))运行结果
C语言中文网已经8岁了它的网址是http://c.biancheng.net/。总之有几个占位符后面就得跟着几个表达式。
指定最小输出宽度
当使用表1中的转换说明符时可以使用下面的格式指定最小输出宽度至少占用多少个字符的位置
%10d 表示输出的整数宽度至少为 10%20s 表示输出的字符串宽度至少为 20。
请看下面的演示
n 1234567
print(n(10):%10d. % n)
print(n(5):%5d. % n)
url http://c.biancheng.net/python/
print(url(35):%35s. % url)
print(url(20):%20s. % url)运行结果
n(10): 1234567.
n(5):1234567.
url(35): http://c.biancheng.net/python/.
url(20):http://c.biancheng.net/python/.从运行结果可以发现对于整数和字符串当数据的实际宽度小于指定宽度时会在左侧以空格补齐当数据的实际宽度大于指定宽度时会按照数据的实际宽度输出。
你看这里指定的只是最小宽度当数据的实际宽度足够时指定的宽度就没有实际意义了。
指定对齐方式
默认情况下print() 输出的数据总是右对齐的。也就是说当数据不够宽时数据总是靠右边输出而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式Python 支持的标志如下
标志说明-指定左对齐表示输出的数字总要带着符号正数带负数带-。0表示宽度不足时补充 0而不是补充空格。
几点说明
对于整数指定左对齐时在右边补 0 是没有效果的因为这样会改变整数的值。对于小数以上三个标志可以同时存在。对于字符串只能使用-标志因为符号对于字符串没有意义而补 0 会改变字符串的值。
请看下面的代码
n 123456
# %09d 表示最小宽度为9左边补0
print(n(09):%09d % n)
# %9d 表示最小宽度为9带上符号
print(n(9):%9d % n)
f 140.5
# %-010f 表示最小宽度为10左对齐带上符号
print(f(-0):%-010f % f)
s Hello
# %-10s 表示最小宽度为10左对齐
print(s(-10):%-10s. % s)运行结果
n(09):000123456
n(9): 123456
f(-0):140.500000
s(-10):Hello .指定小数精度
对于小数浮点数print() 还允许指定小数点后的数字位数也即指定小数的输出精度。
精度值需要放在最小宽度之后中间用点号.隔开也可以不写最小宽度只写精度。具体格式如下
%m.nf
%.nfm 表示最小宽度n 表示输出精度.是必须存在的。
请看下面的代码
f 3.141592653
# 最小宽度为8小数点后保留3位
print(%8.3f % f)
# 最小宽度为8小数点后保留3位左边补0
print(%08.3f % f)
# 最小宽度为8小数点后保留3位左边补0带符号
print(%08.3f % f)运行结果 3.142
0003.142
003.142