常见的占位符
占位符
替换内容
%d
整数
%f
浮点数
%s
字符串,可以把任何数据类型转换为字符串
%x
十六进制整数
%?
有几个占位符
其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
print("Hi, %s, you have $%d." % ("Michael", 1000000))
Hi, Michael, you have $1000000.
print("%d-%02d" % (3, 1))
3-01
print("%.2f" % 3.1415926)
3.14
format()
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}......
基本用法
不带编号,即{}
带数字编号,可调换顺序,即{1}、{2}
带关键字,即{a}、{tom}
# 不带字段
print("{} {}".format("hello", "world"))
hello world
# 带数字编号
print("{0} {1}".format("hello", "world"))
hello world
# 打乱顺序
print("{0} {1} {0}".format("hello", "world"))
hello world hello
print("{1} {1} {0}".format("hello", "world"))
world world hello
# 带关键字
print("{a} {tom} {a}".format(tom="hello", a="world"))
world hello world
进阶用法
<(默认)左对齐、>右对齐、^中间对齐、=(只用于数字)在小数点后进行补齐。
取位数{:4s}、{:.2f}等。
# 默认左对齐
print("{} and {}".format("hello", "world"))
hello and world
# 取10位左对齐,取10位右对齐
print("{:10s} and {:>10s}".format("hello", "world"))
hello and world
# 取10位中间对齐
print("{:^10s} and {:^10s}".format("hello", "world"))
hello and world
# 取2位小数
print("{} is {:.2f}".format(1.123,1.123))
1.123 is 1.12
# 取2位小数,右对齐,取10位
print("{0} is {0:>10.2f}".format(1.123))
1.123 is 1.12