文字列は、Pythonのプログラミングで頻繁に使われる基本要素です。この記事では、文字列の書き方・改行・連結・エスケープシーケンス・複数行の扱い方など、Pythonにおける文字列の基本操作を丁寧に解説します。初心者の方も安心して学べるよう、サンプルコードとともに解説しています。
この記事の対象
文字列とは?基本の書き方

文字列(str型)は、文字の並びを表すデータ型です。Pythonでは、ダブルクォート ("
) またはシングルクォート ('
) で囲んで記述します。
基本的な文字列の扱いは「”_aaa_”」「”Hello World!”」などと「”」で括ることで文字列として表現します。文字列は変数などに代入して使用できます。
text1 = "Hello"
text2 = 'World'
基本的な文字列表現
基本的な文字列表現としては、「””」「”」となります。しかし、場合によっては、「エスケープシーケンス」という特殊記号を用いて表現する場合があります。
ダブルクォートとシングルクォートの違い
どちらでも使えますが、文字列の中に '
や "
を含めたい場合に使い分けます。
print("I'm fine.") # ダブルクォートで囲むことで ' を含められる
print('He said "Hello"') # シングルクォートで囲むことで " を含められる
エスケープシーケンス
\n
(改行)や \"
(ダブルクォートを文字として表示)など、特別な意味を持つ記号です。
print("He said, \"I'm OK.\"")
print("1行目\n2行目")
よく使うエスケープシーケンス一覧
記号 | 意味 |
---|---|
\n | 改行 |
\t | タブ |
\" | ダブルクォート |
\' | シングルクォート |
\\ | バックスラッシュ |
複数行の文字列(トリプルクォート)
複数行の文字列をまとめて記述する場合には三重引用符を用いることがあります。
#三重引用符の使用例
moji = """
I like soccer
I like baseball
"""
よく使う文字列操作
結合・繰り返し・長さ
"Py" + "thon" # 'Python'
"ha" * 3 # 'hahaha'
len("こんにちは") # 5
Pythonでは文字列の操作(分割、結合、置換、探索等)を簡単にできます。文字列の操作についての詳細については以下にまとめています。
f文字列(フォーマット)
読みやすくて高速。Python3.6+。
name = "Masa"
score = 92
msg = f"{name} さんの点数は {score} 点です"
print(msg)
旧来の書式(参考):
"{}さんの点数は{}点".format(name, score)
"%sさんの点数は%d点" % (name, score)
文字の取り出しとスライス
s = "abcdef"
s[0] # 'a'
s[-1] # 'f'(末尾)
s[1:4] # 'bcd'(1以上4未満)
s[:3] # 'abc'
s[3:] # 'def'
s[::2] # 'ace'(ステップ2)
文字列はイミュータブル(変更不可)。部分を書き換えるときは新しい文字列を作ります。
日本語を扱う注意点
文字コードの設定
Pythonコード内で日本語を扱う場合、ソースコードのエンコーディングを正しく設定することが必要です。通常、UTF-8エンコーディングが推奨されています。以下の行をPythonファイルの先頭に追加して下さい。
# -*- coding: utf-8 -*-
ファイルの読み書き
ファイルから日本語のテキストを読み取る場合や、日本語のテキストをファイルに書き込む場合、ファイルオープン時にエンコーディングを指定します。例えば、UTF-8エンコーディングを使用する場合は次のようにします。
with open('ファイル名.txt', 'r', encoding='utf-8') as file:
data = file.read()
Windows向けCSVなどでshift_jis
が必要な場面もあります。
with open("data_sjis.csv","w",encoding="shift_jis") as f:
f.write("商品名,価格\nりんご,120\n")
よくあるエラーとその対策
① 数値との結合でTypeError
age = 20
# "年齢は" + age # TypeError
"年齢は" + str(age) # こうする or f"年齢は{age}"
② インデックス範囲外
"s"[1] # IndexError → lenで長さ確認 or 例外処理
③ 改行や空白が混入
line = "OK\n"
line.strip() # 'OK' で比較
まとめ
- 作る:
'...'
/"..."
/"""..."""
- 結合/繰り返し:
+
,*
- 長さ:
len(s)
- フォーマット:
f"{var}"
- 取り出し/スライス:
s[i]
,s[a:b:c]
- よく使う:
lower/upper/strip/replace/split/join
- 日本語ファイル:
encoding="utf-8"
を明示
次は、文字列の連結方法や変数の埋め込み方法も学んでみましょう!