字符串的格式化主要有两种,第一种是%形式的,第二种是python特有的,format形式。
#百分号形式
s = "我是%s, 我今年%d岁。" % ("mary", 18)
print(s)# 我是mary, 我今年18岁。
#format形式
t = "我是{}, 我今年{}岁。".format('mary', 18)
print(t)# 我是mary, 我今年18岁。
s = "酒精的度数是%.2f%%"%(47)
print(s)#酒精的度数是47.00%
s = "我是%(name)s, 我今年%(old)d岁。" % {'name': 'mary', 'old': 18}
print(s)# 我是mary, 我今年18岁。
t = "我是%(name)s, 我今年%(old)d岁。" % {'old': 18, 'name': 'mary'}
print(t)# 我是mary, 我今年18岁。
[flags]可以为以下四种符号:+,-, (空格), 0表示,所表示的意思如下,其中[width]也可以不设置,此时仅剩表格中的正负数的讨论
+ | 右对齐 | 在[width]宽度下,占位符右对齐,如果传入值是一个正数,那么在右对齐的同时,在该数字前加+号,如果传入值是负数,则只右对齐,不作其他操作。 |
空格 | 右对齐 | 在[width]宽度下,占位符右对齐,如果传入值是一个正数,即使传入值前加+号,字符串中也不加正好,同时将原本该用+号的地方用空格替代,如果传入的是一个负数,那么只右对齐,不作其他操作。 |
0 | 右对齐 | 在[width]宽度下,占位符右对齐,其余部分用0填充,如果传入一个整数,不加+号,如果传入一个负数,那么-号放在最左边。 |
- | 左对齐 | 在[width]宽度下,左对齐,其余地方空格,正数前不加+,负数前加- |
s = "我是%(name)s, 我今年%(old)+8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年 +18岁。
s = "我是%(name)s, 我今年%(old) 8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年 18岁。
s = "我是%(name)s, 我今年%(old)-8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年18 岁。
s = "我是%(name)s, 我今年%(old)08d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年00000018岁。
s = "%f" %(6.0)
print(s) #6.000000
当需要仅保留小数点后2位时:
s = "%.2f" %(6.0)
print(s) #6.00
s = "我是{}, 我今年{}岁。".format('mary', 18)#需按顺序传入
print(s)# 我是mary, 我今年18岁。
s = "我是{1}, 我今年{0}岁。".format(18, 'mary')#需按下标传入
print(s)# 我是mary, 我今年18岁。
s = "我是{name}, 我今年{old}岁。".format(old=18, name='mary')#需键值对传入
print(s)# 我是mary, 我今年18岁。
s = "我是{name}, 我今年{old}岁。".format(**{'old': 18, 'name': 'mary'})#需字典传入
print(s)# 我是mary, 我今年18岁。
s = "酒精的度数是{:.2f}%".format(47)
print(s)#酒精的度数是47.00%