【Python】文字列操作の基本!f-stringを中心にわかりやすく解説

Python

こんにちは、かつコーチです。

前回の記事で、変数と文字列型(str)の基本を紹介しました。

今回はその発展として、Pythonでよく使う文字列操作をまとめて解説します。

「変数の値を文字列に埋め込みたい」

「文字列を分割したり置換したりしたい」

そんな場面で必ず役立つ、f-stringを中心とした書き方を身につけていきましょう。

文字列操作の基本

結合の方法

文字列同士は+演算子でつなげられます。

first_name = "かつ"
last_name = "コーチ"

full_name = first_name + last_name
print(full_name)
かつコーチ

分割の方法

split()メソッドを使うと、文字列を指定した区切り文字でリストに分割できます。

csv_line = "田中,25,東京"
items = csv_line.split(",")

print(items)
['田中', '25', '東京']

置換の方法

replace()メソッドを使うと、文字列内の特定の文字を別の文字に置き換えられます。

message = "Pythonは難しい"
new_message = message.replace("難しい", "楽しい")

print(new_message)
Pythonは楽しい

f-stringで変数を埋め込む

f-stringの基本記法

f-stringとは、文字列の前にfをつけて、{}の中に変数を直接埋め込める記法です。

Python 3.6以降で使えるようになり、現在はもっとも推奨される文字列フォーマット方法です。

name = "かつコーチ"
age = 30

message = f"私は{name}です。{age}歳です。"
print(message)
私はかつコーチです。30歳です。

f-stringの中で計算もできる

f-stringの{}の中には、変数だけでなく計算式や関数呼び出しも書けます。

price = 1000
tax = price * 0.1

print(f"税込価格は{price + tax}円です")
税込価格は1100.0円です

小数点の桁数を指定する

f-stringでは、:の後にフォーマット指定を書くことで、表示形式を細かく調整できます。

price = 1000
tax = price * 0.1

print(f"税込価格は{price + tax:.2f}円です")
税込価格は1100.00円です

.2fは「小数点以下2桁まで表示する」という意味です。

旧来の記法との比較

%記法との比較

f-stringが登場する前は、%記法がよく使われていました。

name = "かつコーチ"
age = 30

message = "私は%sです。%d歳です。" % (name, age)
print(message)

%sは文字列、%dは整数を表すプレースホルダーです。

書式指定子を覚える必要があり、複数の変数を扱うと可読性が落ちやすいのが難点です。

format()との比較

format()メソッドも、f-string登場前によく使われていました。

name = "かつコーチ"
age = 30

message = "私は{}です。{}歳です。".format(name, age)
print(message)

format()はf-stringより記述量が多く、変数と埋め込み位置が離れているため、読みにくくなりがちです。

現在新しくコードを書く場合は、基本的にf-string一択と考えて問題ありません。

よくあるつまずきポイント・エラー対処

f-stringの中で同じ種類のクォートを使ってエラーになる

これは筆者が実際にハマった失敗です。

f-stringの外側と内側で同じ種類のクォート(引用符)を使うと、構文エラーになります。

❌ Before(エラーになる書き方)

name = "かつコーチ"
print(f"私の名前は{name["姓"]}です")

実行すると、次のようなエラーが出ます。

SyntaxError: f-string: unmatched '['

正確には、ダブルクォートの中でさらにダブルクォートを使ったことが原因で、Pythonが文字列の終わりを誤認識してしまいます。

✅ After(正しい書き方)

name = {"姓": "かつコーチ"}
print(f"私の名前は{name['姓']}です")

外側をダブルクォート、内側をシングルクォートにすることで、クォートの衝突を避けられます。

なお、Python 3.12からはこの制限が緩和され、同じクォートを入れ子にしても動くようになりました。

ただし可読性の観点から、クォートは使い分ける習慣をつけておくのがおすすめです。

まとめ

この記事のポイント

  • 文字列は+で結合、split()で分割、replace()で置換できる
  • f-stringはf"{変数}"の形で変数を文字列に埋め込める
  • f-stringの中では計算や書式指定(.2fなど)も可能
  • %記法・format()より、f-stringの方が読みやすく推奨される
  • f-stringの中で同じクォートを重ねると構文エラーになりやすい

次に読むべき記事

  • 変数とデータ型の基本
  • 数値演算と演算子の基本
  • if文・elif・elseで条件分岐

タグ: Python, 初心者向け, 基本文法

タイトルとURLをコピーしました