Python 逆引き集 | 字列操作:文字列を作る

Python Python
スポンサーリンク
スポンサーリンク
  1. 文字列を作るとはどういうことか
  2. 文字列の基本的な作り方をステップバイステップで確認する
    1. 1. シングルクォートとダブルクォート
    2. 2. 空文字列を作る
    3. 3. 数値を文字列に変換して作る
  3. 変数を埋め込んだ文字列を作る(f文字列が最重要)
    1. 1. f文字列(フォーマット文字列)の基本
    2. 2. 式もそのまま書ける
    3. 3. 深掘り:f文字列が推奨される理由
  4. 複数の文字列を組み立てて作る方法
    1. 1. + 演算子でつなぐ
    2. 2. join() でまとめてつなぐ
    3. 3. 改行を含む文字列を作る
  5. 複数行の文字列を作る(長い文章やテンプレート向け)
    1. 1. 三重クォートで作る
    2. 2. テンプレート的に使う
  6. 文字列の性質(イミュータブル)を理解しておく
    1. 1. 文字列は「変更できない」
    2. 2. 深掘り:なぜイミュータブルが重要なのか
  7. ユーザー入力や外部データから文字列を作るときの注意点
    1. 1. input() は必ず文字列を返す
    2. 2. 外部データはそのまま信用しない
  8. 文字列を作るときに意識したいセキュリティと品質
    1. 1. 文字列連結でSQLやコマンドを組み立てない
    2. 2. ログ出力用の文字列は情報量と安全性のバランスを取る
  9. 文字列を作るためのテンプレートと練習用コード
    1. 基本的な文字列作成テンプレート
    2. 数値を含む文字列テンプレート
    3. join() を使った組み立てテンプレート
    4. 複数行メッセージテンプレート
  10. まとめ

文字列を作るとはどういうことか

Pythonでプログラムを書くとき、文字列(str) はほぼ必ず登場する基本データ型です。 メッセージ表示、ログ出力、ファイル入出力、API通信、ユーザー入力など、あらゆる場面で文字列を扱います。

ここでは、「文字列を作る」というテーマに絞って、

  • いちばん基本的な作り方
  • 変数を埋め込んだ文字列の作り方
  • 複数の文字列を組み立てる方法
  • セキュリティやバグの観点で注意すべきポイント をステップバイステップで丁寧に解説していきます。

文字列の基本的な作り方をステップバイステップで確認する

1. シングルクォートとダブルクォート

Pythonでは、文字列は ‘(シングルクォート)“(ダブルクォート) で囲んで作ります。

message = "こんにちは"
name = 'Taro'
Python

どちらを使っても意味は同じですが、

  • 文字列の中に ” を含めたいときは ‘ で囲む
  • 文字列の中に ‘ を含めたいときは ” で囲む

といった使い分けをすると書きやすくなります。

quote1 = "I'm fine."
quote2 = '"Hello," he said.'
Python

2. 空文字列を作る

empty = ""
Python

空文字列は「文字が1つも入っていない文字列」です。 後で文字を追加したり、条件分岐で「何も入力されていないか」を判定するときに使います。

3. 数値を文字列に変換して作る

age = 20
text = str(age)  # "20"
Python

数値をそのまま文字列に足そうとするとエラーになるため、 数値 → 文字列 の変換は非常に重要です。

変数を埋め込んだ文字列を作る(f文字列が最重要)

1. f文字列(フォーマット文字列)の基本

Python 3.6以降では、f文字列(f-string) が標準的な書き方です。

name = "Taro"
age = 20

message = f"{name}{age} 歳です"
print(message)  # Taro は 20 歳です
Python

文字列の中に {} を書き、その中に変数や式を書くことで、 「値を埋め込んだ文字列」を簡潔に作ることができます。

2. 式もそのまま書ける

price = 100
tax = 0.1

text = f"税込価格は {price * (1 + tax)} 円です"
Python

計算式や関数呼び出しも {} の中に書けるため、 「一度変数に入れてから文字列にする」という手間を減らせます。

3. 深掘り:f文字列が推奨される理由

  • 可読性が高い(何を埋め込んでいるか一目で分かる)
  • + で文字列をつなぐより安全で分かりやすい
  • format() より短く書ける

初心者のうちから 「変数を埋め込むときは f文字列」 という習慣を持っておくと、 後々のコードの読みやすさが大きく変わります。

複数の文字列を組み立てて作る方法

1. + 演算子でつなぐ

first = "Hello"
second = "World"

message = first + " " + second  # "Hello World"
Python

シンプルですが、たくさんつなぐと読みにくくなります。 また、数値を混ぜるときは str() が必要になるため、 f文字列の方が実務では好まれます。

2. join() でまとめてつなぐ

複数の文字列を「区切り文字」でつなぎたいときは、join() が便利です。

words = ["Python", "で", "文字列を", "作る"]
sentence = " ".join(words)
Python
  • " ".join(words) → リストの要素をスペース区切りでつなぐ
  • ",".join(words) → カンマ区切りでつなぐ

ログやCSV、メッセージの組み立てなどで頻繁に使われます。

3. 改行を含む文字列を作る

text = "1行目\n2行目\n3行目"
print(text)
Python

\n は「改行」を表す特殊な文字(エスケープシーケンス)です。 複数行のメッセージやファイル内容を作るときに使います。

複数行の文字列を作る(長い文章やテンプレート向け)

1. 三重クォートで作る

message = """こんにちは
Pythonの学習を始めましょう。
これは複数行の文字列です。"""
Python

""" ... """''' ... ''' で囲むと、 改行を含む長い文字列をそのまま書くことができます。

2. テンプレート的に使う

name = "Taro"
body = f"""こんにちは、{name}さん

このメールはPythonから自動送信されています。
よろしくお願いします。
"""

print(body)
Python

メール本文やヘルプメッセージなど、 「人間が読む長文」をコードに埋め込むときに非常に便利です。

文字列の性質(イミュータブル)を理解しておく

1. 文字列は「変更できない」

Pythonの文字列は イミュータブル(immutable) です。 つまり、一度作った文字列の中身を直接書き換えることはできません。

text = "Python"
# text[0] = "J"  # ❌ エラー
Python

変更したい場合は、新しい文字列を作る必要があります。

text = "Python"
new_text = "J" + text[1:]  # "Jython"
Python

2. 深掘り:なぜイミュータブルが重要なのか

  • 予期せぬ変更が起きないため、安全性が高い
  • 辞書のキーなどに安心して使える
  • 内部的な最適化がしやすい

「文字列は作ったら変えられない」という前提を持っておくと、 バグの原因を減らすことができます。

ユーザー入力や外部データから文字列を作るときの注意点

1. input() は必ず文字列を返す

value = input("数字を入力してください: ")
print(type(value))  # <class 'str'>
Python

見た目が数字でも、中身は文字列です。 計算に使う場合は、必ず int()float() で変換します。

num = int(value)
Python

2. 外部データはそのまま信用しない

APIレスポンスやファイルから読み込んだ文字列は、

  • 予期しない文字が含まれている
  • 改行やタブが紛れ込んでいる
  • エスケープが必要な記号が含まれている

といったことがよくあります。

ログや画面表示に使う前に、

  • strip() で前後の空白を削る
  • replace() で危険な文字を置き換える などの前処理を行うことが、セキュリティ面でも重要です。

文字列を作るときに意識したいセキュリティと品質

1. 文字列連結でSQLやコマンドを組み立てない

query = "SELECT * FROM users WHERE name = '" + user_input + "'"
Python

このような書き方は、SQLインジェクションなどの攻撃に弱くなります。 実務では、プレースホルダや専用のライブラリを使うべきですが、 「文字列連結で危険なものを作らない」という意識は、 初心者のうちから持っておくと良いです。

2. ログ出力用の文字列は情報量と安全性のバランスを取る

log = f"user={user_id}, action={action}, ip={ip}"
Python

ログに何を含めるかは、

  • デバッグしやすさ
  • 個人情報保護
  • セキュリティ

のバランスが重要です。 文字列を作るときに「誰がどこで見るか」を意識する習慣を持つと、 安全なシステム設計につながります。

文字列を作るためのテンプレートと練習用コード

基本的な文字列作成テンプレート

text = "こんにちは"
name = "Taro"
message = f"{name} さん、{text}"
Python

数値を含む文字列テンプレート

count = 5
msg = f"現在の件数は {count} 件です"
Python

join() を使った組み立てテンプレート

items = ["apple", "banana", "orange"]
line = ", ".join(items)  # "apple, banana, orange"
Python

複数行メッセージテンプレート

user = "Taro"
body = f"""こんにちは、{user}さん

このメッセージはPythonから送信されています。
またのご利用をお待ちしています。
"""
Python

まとめ

  • 文字列は '...'"..." で作り、空文字列や数値からの変換もよく使います。
  • 変数や式を埋め込んだ文字列を作るときは、f文字列が最も読みやすく安全です。
  • 複数の文字列を組み立てるときは、+ より join() や f文字列を使うと品質が上がります。
  • 文字列はイミュータブルであり、「変更したいときは新しい文字列を作る」という前提が重要です。
  • ユーザー入力や外部データから文字列を作るときは、型変換や前処理、セキュリティを意識する必要があります。

文字列を「ただのテキスト」ではなく、「データとして設計するもの」として扱えるようになると、 Pythonでの開発が一気に安定して、読みやすく安全なコードを書けるようになります。

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