Pythonの文字列の基本
はじめての人向けに、Pythonの「文字列」をかみ砕いて説明します。手を動かして実感できる小さな例題もたくさん載せます。
文字列ってなに?
- 定義:
「文字の並び」のこと。英数字、日本語、記号などをまとめたデータです。 - 書き方:
文字列は必ず'(シングルクォーテーション)か"(ダブルクォーテーション)で囲みます。
message = "こんにちは"
name = 'Taro'
Python- 数値との違い:
囲んでいない123は数値、囲んだ"123"は文字列(数字の文字)です。
print(123 + 1) # 124(数値の足し算)
print("123" + "1") # 1231(文字列の結合)
Pythonクォーテーションの使い分けとエスケープ
- 中にクォーテーションを入れたいとき:
外側と内側を違う種類にするか、バックスラッシュ\を使います(エスケープ)。
# 外側をダブルにして内側にシングル
text1 = "Tom's toy"
# 外側をシングルにして内側にダブル
text2 = '彼は"こんにちは"と言った'
# エスケープして書く(\' や \")
text3 = 'Tom\'s toy'
text4 = "彼は\"こんにちは\"と言った"
Python- よくあるエラー例:
'Tom's'のように途中で閉じてしまうと「文法エラー」になります。
画面に表示する(print)
- 基本:
文字列を表示したいときはprint()を使います。
print("Hello, world!")
print('こんにちは、Python!')
Python- 複数を並べる:
カンマで区切るとスペース付きで並べて表示されます。
print("名前:", "Taro") # 名前: Taro
Python文字列をつなぐ・繰り返す
- 結合(+):
文字列同士をつなぎます。
first = "Hello"
second = "Python"
print(first + " " + second) # Hello Python
Python- 繰り返し():*
同じ文字列を指定回数繰り返します。
print("ha" * 3) # hahaha
Python- 型に注意:
数値はそのままでは結合できません。文字列に変換します。
age = 20
print("年齢は" + str(age) + "歳") # 年齢は20歳
Python文字の位置や切り出し(インデックス・スライス)
- インデックス(位置指定):
左から0、1、2…と数えます。右から数えるときは -1、-2… です。
s = "Python"
print(s[0]) # P
print(s[-1]) # n
Python- スライス(区間切り出し):
s[開始:終了]で、開始以上・終了未満の部分を取り出します。
s = "Programming"
print(s[0:5]) # Progr
print(s[3:]) # gramming(3文字目から最後まで)
print(s[:7]) # Program(最初から6文字目まで)
print(s[::2]) # Pormig(2文字おき)
Python- 長さを知る:
文字数はlen()で確認できます。
print(len("こんにちは")) # 5
Pythonよく使う文字列メソッド
- 大文字・小文字:
英字の大小を変えるときに使います。
s = "Hello Python"
print(s.upper()) # HELLO PYTHON
print(s.lower()) # hello python
Python- 前後の空白削除:
入力時など不要な空白を削除します。
name = " Taro "
print(name.strip()) # Taro
print(name.lstrip()) # 左だけ削除
print(name.rstrip()) # 右だけ削除
Python- 置き換え:
特定の文字や語句を別のものに差し替えます。
text = "I like Java"
print(text.replace("Java", "Python")) # I like Python
Python- 分割・結合:
文字列を区切ってリストにしたり、リストをつなげて文字列にします。
items = "apple,banana,orange"
parts = items.split(",")
print(parts) # ['apple', 'banana', 'orange']
joined = "-".join(parts)
print(joined) # apple-banana-orange
Python- 検索:
部分文字列の位置を調べます(見つからないと -1)。
s = "hello world"
print(s.find("world")) # 6
print(s.find("Python")) # -1
Python- 含まれているか(in演算子):
True/False で答えます。
print("py" in "python") # True
print("cat" in "python") # False
Python文字列は「変更不可」ってどういう意味?
- 不変(イミュータブル):
文字列の中身は直接書き換えられません。新しい文字列を作り直します。
s = "cat"
# s[0] = "b" # これはエラー
s = "b" + s[1:] # 置き換えたいなら新しく作る
print(s) # bat
Python入力を使った例と便利なフォーマット
- ユーザー入力:
input()は文字列として受け取ります。
name = input("あなたの名前は?: ")
print("こんにちは、" + name + "さん!")
Python- f文字列(フォーマット):
変数を埋め込みたいときに読みやすく書けます。
age = 20
print(f"年齢は{age}歳です") # 年齢は20歳です
price = 1234.567
print(f"税込価格: {price:.2f}円") # 小数2桁
Pythonよくあるつまずきポイント
- クォーテーションの閉じ忘れ:
片方だけ閉じるとエラー。色分けされたエディタで確認すると見つけやすい。 - 型の混在(文字列と数値の結合):
"合計は" + 3はエラー。str(3)にする。 - 改行やタブの扱い:
\nは改行、\tはタブ。文字列の中で動きます。
print("行1\n行2") # 改行
print("A\tB") # タブ
Pythonミニ練習問題
練習1: 結合して挨拶文を作る
- 課題:
first_name = "Taro"とlast_name = "Yamada"を使って「Yamada Taroさん、ようこそ!」を表示してください。 - ヒント:
+とスペース" "とf文字列どちらでもOK。
練習2: 入力を整える
- 課題:
ユーザーに果物名を入力してもらい、前後の空白を削除して、大文字にして表示してください。 - ヒント:
strip()とupper()。
練習3: 一部だけ取り出す
- 課題:
文字列"Programming"から"gram"を取り出して表示してください。 - ヒント:
find()で開始位置を探して、スライスで切り出し。
解答例
練習1: 結合して挨拶文を作る
課題:first_name = "Taro" と last_name = "Yamada" を使って「Yamada Taroさん、ようこそ!」を表示する。
解答例:
first_name = "Taro"
last_name = "Yamada"
# 方法1: + で結合
print(last_name + " " + first_name + "さん、ようこそ!")
# 方法2: f文字列(おすすめ)
print(f"{last_name} {first_name}さん、ようこそ!")
Python練習2: 入力を整える
課題:
ユーザーに果物名を入力してもらい、前後の空白を削除して、大文字にして表示する。
解答例:
fruit = input("好きな果物を入力してください: ")
# strip() で前後の空白を削除、upper() で大文字に変換
cleaned = fruit.strip().upper()
print("入力された果物:", cleaned)
Python実行例:
好きな果物を入力してください: apple
入力された果物: APPLE
練習3: 一部だけ取り出す
課題:
文字列 "Programming" から "gram" を取り出して表示する。
解答例:
s = "Programming"
# 方法1: インデックスを直接指定
print(s[3:7]) # gram
# 方法2: find() を使って位置を探す
pos = s.find("gram")
if pos != -1:
print(s[pos:pos+4]) # gram
Pythonまとめ
- 文字列の結合:
+や f文字列でOK - 入力の整形:
strip()とupper()が便利 - 部分取り出し: インデックスや
find()を活用
まとめと次の一歩
- まとめ:
文字列は'または"で囲う、結合は+、繰り返しは*、位置指定は[]、部分取り出しは[:]。よく使うメソッド(strip,replace,split,join,find)を覚えると一気に楽になります。 - 次の一歩:
ファイル入出力で文字列を読み書きする、正規表現で高度な検索・置換をする、JSONやCSVの文字列を扱う、などに進むと応用力がつきます。

