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}")
結果は次のとおりです。