python中字符串格式化方式如下:
方式 |
备注 |
---|---|
print(内容1,内容2,内容3,......) | 使用","符号进行内容拼接. |
print(字符串1+字符串2+字符串3......) | 如果不是字符串,需要进行字符串转换[str()],否则会报错. |
print("...%s...%d...%f..."%(变量1,变量2,变量3)) | %s代表字符串(string)的占位符; %d为整数(int)的占位符,其中d为digit(数字)的缩写; %f为浮点数(float)的占位符,默认保留小数点后6位, 会四舍五入进行取值. |
print(f"...{变量名}...") | f是format(设置格式)的简写 |
对应代码如下:
name = '笨小孩'
sex = '男'
age = 24
height = 168.5
# 方式一:
print(name, sex, age, height)
# 方式二: print("我叫" + name + "性别为" + sex + "今年" + age+"身高是"+height)
# 报错:TypeError: can only concatenate str (not "int") to str
print("我叫" + name + "性别为" + str(sex) + "今年" + str(age) + "身高是" + str(height))
# 方式三:
print("我叫%s,性别为%s,今年%d,身高是%f" % (name, sex, age, height))
# 方式四
print(f"我叫{name},性别为{sex},今年{age},身高是{height}")
运行结果:
扩展分析:
在实际生活中可能对输出字符串中的数字进行精度控制,那如何进行操作呢?
我们可以使用辅助符号"m.n"来控制数据的宽度和精度.其中
-
m,控制宽度,设置的宽度大于数字本身,默认会用空格补足宽度,也可以使用0进行补全. 设置的宽度小于数字自身,不生效. n,控制小数点精度,会进行小数的四舍五入取值
print(“...%s...%d...%f...”%(变量名1,变量名2,变量名3) | print(...{变量名}...) | |
---|---|---|
整数 | %md, %0md |
{变量名:md}, {变量名:0md} |
浮点数 | %.nf, m.nf, %m.nf |
{变量名:.nf}, {变量名:m.nf}, {变量名:0m.nf} |
情况一:宽度控制
name = '笨小孩'
sex = '男'
age = 24
height = 168.5
"""age宽度设置为5>2,默认会用空格补足宽度,也可以使用0进行补全!!!"""
# 方式1
print("我叫%s,性别为%s,今年%5d,身高是%f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age:5d},身高是{height}")
# 方式2
print("我叫%s,性别为%s,今年%05d,身高是%f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age:05d},身高是{height}")
"""age宽度设置为1>2,不生效!!!"""
# 方式1
print("我叫%s,性别为%s,今年%1d,身高是%f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age:1d},身高是{height}")
# 方式2
print("我叫%s,性别为%s,今年%01d,身高是%f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age:1d},身高是{height}")
结果如下:
情况二:精度控制
name = '笨小孩'
sex = '男'
age = 24
height = 168.5
"""身高取值范围保留2位小数"""
# 方式1
print("我叫%s,性别为%s,今年%d,身高是%.2f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age},身高是{height:.2f}")
# 方式2
print("我叫%s,性别为%s,今年%d,身高是%8.2f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age},身高是{height:8.2f}")
# 方式3
print("我叫%s,性别为%s,今年%d,身高是%4.2f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age},身高是{height:4.2f}")
# 方式4
print("我叫%s,性别为%s,今年%d,身高是%08.2f" % (name, sex, age, height))
print(f"我叫{name},性别为{sex},今年{age},身高是{height:08.2f}")
结果如下: