Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.format() / f文字列 / 文字列.zfill()
文字列に値を埋め込んで書式化するメソッドと構文です。f文字列(f-string)が最もモダンで読みやすい方法です。
構文
# format() メソッドで値を埋め込みます。
"テンプレート {}".format(値)
"テンプレート {名前}".format(名前=値)
"テンプレート {書式指定子}".format(値)
# f文字列(Python 3.6以降)で変数を直接埋め込みます。
f"テキスト {変数} テキスト"
f"テキスト {式:.2f} テキスト"
# ゼロ埋めで数値を整形します。
文字列.zfill(幅)
# 文字列を指定した幅に揃えます。
文字列.center(幅, 埋め文字=' ')
文字列.ljust(幅, 埋め文字=' ')
文字列.rjust(幅, 埋め文字=' ')
関数一覧
| メソッド・構文 | 概要 |
|---|---|
| str.format(*args, **kwargs) | テンプレート文字列の {} に値を埋め込んで書式化した文字列を返します。 |
| f"...{式}..." | 文字列リテラルの先頭に f を付けると、{} の中に変数や式を直接書けます。最もPythonicな方法です。 |
| str.zfill(width) | 文字列を指定した幅になるまで先頭をゼロで埋めます。 |
| str.center(width, fillchar) | 文字列を指定した幅の中央に揃えます。 |
| str.ljust(width, fillchar) | 文字列を左揃えにして指定した幅にします(右側が埋め文字で補填されます)。 |
| str.rjust(width, fillchar) | 文字列を右揃えにして指定した幅にします(左側が埋め文字で補填されます)。 |
サンプルコード
# f文字列(最もモダンな方法)の基本的な使い方です。
name = "太郎"
age = 20
print(f"名前: {name}, 年齢: {age}歳") # 名前: 太郎, 年齢: 20歳
# f文字列の中で式を評価します。
price = 1980
tax_rate = 0.1
print(f"税込価格: {price * (1 + tax_rate):.0f}円") # 税込価格: 2178円
# 書式指定子で数値を整形します。
pi = 3.14159265
print(f"円周率: {pi:.2f}") # 円周率: 3.14(小数点以下2桁)
print(f"円周率: {pi:.4f}") # 円周率: 3.1416
print(f"金額: {1000000:,}円") # 金額: 1,000,000円(カンマ区切り)
print(f"割合: {0.856:.1%}") # 割合: 85.6%(パーセント表記)
# 進数変換のフォーマットです。
n = 255
print(f"10進数: {n:d}, 16進数: {n:x}, 2進数: {n:b}, 8進数: {n:o}")
# 10進数: 255, 16進数: ff, 2進数: 11111111, 8進数: 377
# 文字列の幅揃えです。
print(f"{'左揃え':<10}|") # 左揃え |
print(f"{'中央揃え':^10}|") # 中央揃え |
print(f"{'右揃え':>10}|") # 右揃え|
# format() メソッドの使い方です(Python 3.5以前との互換性)。
print("名前: {}, 年齢: {}".format(name, age))
print("名前: {name}, 年齢: {age}".format(name="花子", age=25))
print("{0}と{1}と{0}".format("A", "B")) # AとBとA
# 書式指定を format() で行います。
print("金額: {:,}円".format(1234567)) # 金額: 1,234,567円
print("割合: {:.1%}".format(0.856)) # 割合: 85.6%
# zfill() でゼロ埋めします。
order_no = "42"
print(order_no.zfill(6)) # 000042(6桁になるようにゼロで埋めます)
# 月・日のゼロ埋めです。
month = 3
day = 5
print(f"{month:02d}月{day:02d}日") # 03月05日
# center()・ljust()・rjust() での文字揃えです。
label = "PYTHON"
print(label.center(20, "=")) # =======PYTHON=======
print(label.ljust(20, "-")) # PYTHON--------------
print(label.rjust(20, "-")) # --------------PYTHON
概要
文字列のフォーマットには、f文字列(f-string)・format()・%演算子の3つの方法があります。現代のPython(3.6以降)ではf文字列が最も読みやすく高速なため推奨されています。f文字列の中では変数だけでなく任意の式や関数呼び出しも書けます。
書式指定子の構文は『:フラグ幅.精度型』の形式です。よく使うものを覚えておくと便利です。浮動小数点数を整数として表示したい場合は『{:.0f}』(小数点以下0桁)を使ってください。『{:d}』は整数型にしか使えないため TypeError が発生します。
f文字列はデバッグ時に『f"{変数名=}"』と書くと(Python 3.8以降)、変数名と値を同時に表示できて便利です。例えば『f"{pi=}"』は『pi=3.14159265』と表示されます。数値の型変換については『int() / float() / str()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。