目录
Python格式化字符串(格式化输出)
转换说明符 | 解释 |
---|---|
%d、%i | 转换为带符号的十进制整数 |
%o | 转换为带符号的八进制整数 |
%x、%X | 转换为带符号的十六进制整数 |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f、%F | 转化为十进制浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
举例:
name = "你好,我叫小明"
age = 8
address= "育才东路18号"
print("%s现在已经%d岁了,我家在%s。" % (name, age, address))
你好,我叫小明现在已经8岁了,我家在育才东路18号。
指定最小输出宽度
n = 1234567
print("n(10):%10d." % n)
print("n(5):%5d." % n)
url = "https://blog.csdn.net/"
print("url(35):%35s." % url)
print("url(20):%20s." % url)
n(10): 1234567.
n(5):1234567.
url(35): https://blog.csdn.net/.
url(20):https://blog.csdn.net/.
print()函数高级用法
username = 'Charlie'
userage = 8
#同时输出多个变量和字符串
print("读者名:",username,"年龄:",userage)
#同时输出多个变量和字符串,指定分隔符
print("读者名:",username,"年龄:",userage,sep='|')
读者名: Charlie 年龄: 8
读者名:|Charlie|年龄:|8
print()取消换行
在默认情况下,print() 函数输出之后总会换行,这是因为 print() 函数的 end 参数的默认值是“\n”
#设置end 参数,指定输出之后不再换行
print(40,'\t',end="")
print(5O,'\t',end="")
print(60,'\t',end="")
40 50 60
print()写入文件
open() 函数用于打开 demo.txt 文件,接连 2 个 print 函数会将这 2 段字符串依次写入此文件,最后调用 close() 函数关闭文件
f = open("demo.txt","w")#打开文件以便写入该文件一般在文件目录上
print('沧海月明珠有泪',file=f)
print('蓝回日暖玉生烟',file=f)
f.close()
指定对齐方式
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
指定小数精度
精度值需要放在最小宽度之后,中间用点号.
隔开;也可以不写最小宽度,只写精度。具体格式如下:
%m.nf
%.nf
m 表示最小宽度,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