こんにちは、かつコーチです。
前回の記事で、変数と文字列型(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, 初心者向け, 基本文法