Pythonでの文字列の書式設定

Python での文字列の整形方法は次のとおりです。

                      方法

                        述べる

print(コンテンツ1,コンテンツ2,コンテンツ3,...) コンテンツの結合には「,」記号を使用します。
print(文字列 1+文字列 2+文字列 3...) 文字列でない場合は、文字列変換[ str() ]が必要です。そうでない場合は、エラーが報告されます。
print("...%s...%d...%f..."%(変数 1、変数 2、変数 3))

%s は文字列のプレースホルダーを表します。

%d は整数 (int) のプレースホルダーです。d は数字 (number) の省略形です。

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

操作結果:

拡張分析:

実際には、出力文字列の数値の精度を制御することは可能ですが、どうすればよいでしょうか?

補助記号「mn」を使用して、データの幅と精度を制御できます。

  • mは、幅を制御します。設定された幅は数値自体よりも大きくなります。デフォルトでは、幅を完成させるためにスペースが使用されます。完成には0を使用することもできます。設定された幅は数値自体よりも小さいため、有効になりませ
                ん.n
    は、小数点の精度を制御し、小数値を四捨五入します。
  print("...%s...%d...%f..."%(変数名1, 変数名2, 変数名3) print(...{変数名}...)
    整数

       %md、    

  %0md

      {変数名: md},

      {変数名:0md}

    浮動小数点数

%.nf、

男性、nf、

%m.nf

      {変数名:.nf},

      {変数名: m.nf},

      {変数名:0m.nf}

ケース 1: 幅制御

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

結果は次のとおりです。 

状況 2: 精密制御

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