プログラミングを勉強していると、「文字列」という言葉がよく登場します。
「文字列とは何だろう?」「数字と何が違うの?」「文字をつなげたり、一部分だけ取り出したりできるの?」と疑問に思ったことはありませんか?
文字列とは、文字を並べたデータのことです。プログラミングでは、名前や住所、メッセージなど、さまざまな情報を文字列として扱います。
この記事では、高校の情報Ⅰを学習している人やPythonを初めて使う人に向けて、文字列の基本から、結合、取り出し、繰り返し処理との組み合わせまで、具体例を使って解説します。
- 1. 文字列とは?
- 2. 文字列と数値の違い
- 数値と文字列の違いを試してみよう
- 3. 文字列を結合する方法
- 4. f文字列を使って文字列に変数を埋め込む
- 5. 文字列から特定の文字を取り出す
- 文字列のインデックス
- 6. スライスで文字列の一部分を取り出す
- 7. len関数で文字列の長さを調べる
- 8. 文字列を大文字・小文字に変換する
- 9. 文字列の置換・空白の削除・分割
- 10. 文字列に特定の文字が含まれているか調べる
- 11. 文字列と繰り返し処理を組み合わせる
- 12. 文字列は直接変更できない
- 13. input()で入力された文字列を数値に変換する
- 14. 練習問題
- 問題1:文字列の長さ
- 問題2:文字列の結合
- 問題3:文字の出現回数
- 15. まとめ
1. 文字列とは?
文字列とは、文字を並べたデータのことです。英語では「String(ストリング)」と呼ばれます。
例えば、次のようなデータはすべて文字列です。
- 山田太郎
- こんにちは
- Tokyo
- ABC123
- 2026年9月23日
Pythonでは、文字列をシングルクォーテーション(')またはダブルクォーテーション(")で囲んで表現します。
name = "山田太郎"message = 'こんにちは'print(name)print(message)
実行結果:
山田太郎
こんにちは
文字列は、数値とは異なるデータ型として扱われます。Pythonでは文字列の型を str といいます。
2. 文字列と数値の違い
プログラミングを始めたばかりの人が間違えやすいのが、文字列と数値の違いです。
例えば、次の2つを見比べてください。
number = 100text = "100"
見た目はどちらも100ですが、Pythonでは別の種類のデータです。
| データ | 型 | 意味 |
|---|---|---|
100 | int | 整数 |
"100" | str | 文字列 |
実際に足し算してみましょう。
print(100 + 200)print("100" + "200")
実行結果:
300
100200
数値の足し算は計算になりますが、文字列の + は文字をつなげる処理になります。
この違いは、フォームへの入力やデータ処理でも重要です。
数値と文字列の違いを試してみよう
数値:100 + 200
文字列:"100" + "200"
実行結果
300
数値なので加算されます。
3. 文字列を結合する方法
文字列同士をつなげることを「文字列の結合」といいます。
Pythonでは、+ 演算子を使用します。
first_name = "太郎"last_name = "山田"full_name = last_name + first_nameprint(full_name)
実行結果:
山田太郎
間に空白を入れたい場合は、次のように書きます。
full_name = last_name + " " + first_nameprint(full_name)
実行結果:
山田 太郎
このように、文字列を組み合わせて新しい文字列を作ることができます。
4. f文字列を使って文字列に変数を埋め込む
Pythonでは、f文字列(f-string)を使うと、変数の値を文章に埋め込むことができます。
例えば、名前と年齢を表示してみましょう。
name = "山田"age = 16message = f"{name}さんは{age}歳です"print(message)
実行結果:
山田さんは16歳です
f文字列では、文字列の先頭に f を付け、変数名を波かっこ {} で囲みます。
文字列の結合で + を何度も使う必要がなく、数値も自然に文章へ組み込めるので便利です。
5. 文字列から特定の文字を取り出す
文字列は、リストと同じように、インデックスを指定して特定の文字を取り出せます。
例えば、次の文字列を考えます。
text = "Python"
文字列のインデックス
0
P
1
y
2
t
3
h
4
o
5
n
最初の文字のインデックスは0です。
例えば、
print(text[0])print(text[2])
実行結果:
P
t
インデックスは0から始まるため、text[0] が最初の文字、text[2] が3番目の文字になります。
6. スライスで文字列の一部分を取り出す
スライスとは、文字列の指定した範囲を取り出す機能です。
例えば、次のように書きます。
text = "Python"print(text[0:3])
実行結果:
Pyt
text[0:3] は、インデックス0から3の直前までを取り出すという意味です。
ほかにも、次のような書き方ができます。
| 書き方 | 実行結果 |
|---|---|
text[:3] | Pyt |
text[3:] | hon |
text[-1] | n |
text[::-1] | nohtyP |
特に text[-1] は最後の文字を取得する方法として便利です。
7. len関数で文字列の長さを調べる
文字列に何文字含まれているかを調べたい場合は、len() 関数を使います。
text = "Python"print(len(text))
実行結果:
6
日本語にも使用できます。
message = "こんにちは"print(len(message))
実行結果:
5
ただし、絵文字や結合文字などでは、画面上で見える文字の数と len() の結果が一致しない場合があります。
8. 文字列を大文字・小文字に変換する
Pythonには、文字列を大文字や小文字に変換するメソッドがあります。
text = "Python"print(text.upper())print(text.lower())
実行結果:
PYTHON
python
upper() は大文字、lower() は小文字への変換に使用します。
例えば、ユーザーが入力した英字を小文字に統一してから比較する場合などに便利です。
9. 文字列の置換・空白の削除・分割
Pythonでは、文字列の内容を変更した新しい文字列を作ったり、複数の文字列に分割したりできます。
replace()で文字列を置き換える
message = "私は犬が好きです"new_message = message.replace("犬", "猫")print(new_message)
実行結果:
私は猫が好きです
replace() は、指定した文字列を別の文字列に置き換えた結果を返します。
strip()で前後の空白を削除する
name = " 山田 "print(name.strip())
実行結果:
山田
フォームに入力された名前などに余計な空白が含まれている場合に利用できます。
split()で文字列を分割する
fruits = "りんご,みかん,バナナ"result = fruits.split(",")print(result)
実行結果:
['りんご', 'みかん', 'バナナ']
split() は、指定した区切り文字で文字列を分割し、リストとして返します。
10. 文字列に特定の文字が含まれているか調べる
文字列の中に特定の文字や単語が含まれているかどうかは、in を使って判定できます。
message = "Pythonを勉強しています"if "Python" in message: print("Pythonという文字が含まれています")
実行結果:
Pythonという文字が含まれています
ここでは、以前に学習した条件分岐を使用しています。
例えば、入力された文章に禁止語句が含まれているかを確認したり、文章の中から特定のキーワードを探したりする処理にも応用できます。
11. 文字列と繰り返し処理を組み合わせる
文字列も、リストと同じようにfor文で1文字ずつ取り出せます。
text = "Python"for char in text: print(char)
実行結果:
P
y
t
h
o
n
さらに条件分岐と組み合わせれば、特定の文字だけを数えることもできます。
text = "banana"count = 0for char in text: if char == "a": count += 1print(count)
実行結果:
3
このプログラムでは、文字列の中に a が何回登場するかを調べています。
変数、条件分岐、繰り返し処理を組み合わせた実践的な例です。
12. 文字列は直接変更できない
Pythonの文字列には、一度作成すると、その中の文字を直接変更できないという特徴があります。
例えば、次のコードはエラーになります。
text = "Python"text[0] = "J"
文字列の内容を変更したい場合は、新しい文字列を作成します。
text = "Python"text = "J" + text[1:]print(text)
実行結果:
Jython
このような、一度作成した値を直接変更できない性質を「イミュータブル」といいます。
リストは要素を変更できますが、文字列では直接変更できない点を覚えておきましょう。
13. input()で入力された文字列を数値に変換する
Pythonでは、input() を使うと、キーボードから入力されたデータを受け取れます。
ただし、input() が返す値は文字列です。
例えば、次のコードを見てください。
age = input("年齢を入力してください:")print(age)
入力された値を数値として計算したい場合は、int() などを使って変換します。
age = int(input("年齢を入力してください:"))next_age = age + 1print(f"来年は{next_age}歳です")
16を入力すると、次のように表示されます。
来年は17歳です
なお、数字以外の文字を入力すると int() でエラーが発生するため、実際のアプリケーションでは入力値の確認も必要です。
14. 練習問題
これまで学習した内容を使って、3つの練習問題に挑戦してみましょう。
問題1:文字列の長さ
変数 message に「プログラミング」を入れて、その文字数を表示してください。解答を見る
問題2:文字列の結合
first_name に「太郎」、last_name に「山田」を入れ、f文字列を使って「山田太郎」と表示してください。解答を見る
問題3:文字の出現回数
文字列「programming」の中に「m」が何個含まれるか、for文とif文で調べてください。解答を見る
15. まとめ
文字列とは、文字を並べたデータのことです。Pythonでは str 型として扱い、名前やメッセージなど、さまざまな情報を保存できます。
今回学習した主な操作は、文字列の結合、インデックスによる取り出し、スライス、長さの取得、置換、分割です。
さらに、文字列を条件分岐や繰り返し処理と組み合わせることで、特定のキーワードを探したり、文字の出現回数を数えたりできます。
まずは、短い文字列を使って実際にプログラムを動かし、取り出す位置や文字の内容を変更してみましょう。

