python中字符串格式化方式

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}")

 结果如下: 

猜你喜欢

转载自blog.csdn.net/tjfsuxyy/article/details/130211753