Python文字列メソッド 特訓セット(初心者向け)
では以下のように、文字列メソッド別の「特訓10問セット」を用意。
どれも「初心者でも手を動かしながら理解できる」構成で、各問題には簡単なヒント・解答・解説もつけます。
【1】replace() 特訓10問
文字列の一部を別の文字に置き換えるメソッド。
text = "I like apple."
print(text.replace("apple", "banana"))
# => I like banana.
Python問題セット
| No | 問題 | ヒント |
|---|---|---|
| Q1 | "dog cat dog".replace("dog", "cat") の結果は? | dog→cat |
| Q2 | "aaaa".replace("a", "b", 2) の出力を確認 | 第3引数で回数制限 |
| Q3 | "Python".replace("Py", "") | 部分削除もOK |
| Q4 | "Hello World".replace("l", "L") | 全部置換 |
| Q5 | "2025-11-06".replace("-", "/") | 日付形式変更 |
| Q6 | "banana".replace("na", "NA") | 繰り返し部分注意 |
| Q7 | "abcabc".replace("ab", "X", 1) | 最初の1回だけ |
| Q8 | "Hello".replace("h", "H") | 大文字・小文字は別物 |
| Q9 | "data,data,data".replace(",", " / ") | 区切り変換 |
| Q10 | "aaa".replace("aa", "b") | 重なり注意!結果を確認 |
【2】split() 特訓10問
文字列を区切り文字で分割してリストにする。
"apple,banana,cherry".split(",")
# => ['apple', 'banana', 'cherry']
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | "a b c".split() | デフォルトは空白区切り |
| Q2 | "apple,banana".split(",") | カンマで区切る |
| Q3 | "a-b-c".split("-", 1) | 回数指定あり |
| Q4 | "apple,,banana".split(",") | 空要素も出る |
| Q5 | "Python".split("t") | “t”が消える |
| Q6 | "one two three".split(maxsplit=1) | 最初の1回だけ |
| Q7 | "a:b:c:d".split(":")[-1] | 最後の要素取得 |
| Q8 | "abc".split(",") | 区切りなしなら全体1つ |
| Q9 | "A,B,C,".split(",") | 最後に空文字あり |
| Q10 | "line1\nline2\n".splitlines() | 改行対応の特別版 |
【3】join() 特訓10問
リストを文字列として結合する。
",".join(["apple", "banana", "cherry"])
# => "apple,banana,cherry"
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | " ".join(["I", "love", "Python"]) | スペースで結合 |
| Q2 | "-".join("ABC") | 1文字ずつ結合 |
| Q3 | "".join(["1", "2", "3"]) | 連結のみ |
| Q4 | `” | “.join([“a”, “b”, “c”])` |
| Q5 | "abc".join([]) | 空リストなら? |
| Q6 | "--".join(["A", "B"]) | 両端に区切りは入らない |
| Q7 | "".join(str(i) for i in range(3)) | 数値は文字に変換して |
| Q8 | ",".join(["", "x", "y"]) | 空文字も反映される |
| Q9 | " and ".join(["apple", "banana"]) | 会話風に結合 |
| Q10 | "".join(reversed("abc")) | join × reversed |
【4】strip() / lstrip() / rstrip() 特訓10問
前後の空白や特定文字を削除する。
" hello ".strip()
# => 'hello'
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | " abc ".strip() | 両端の空白削除 |
| Q2 | "\nabc\t".strip() | 改行・タブも対象 |
| Q3 | "***abc***".strip("*") | 特定文字削除 |
| Q4 | "***abc***".lstrip("*") | 左側のみ |
| Q5 | "***abc***".rstrip("*") | 右側のみ |
| Q6 | " a b ".strip() | 中の空白は消えない |
| Q7 | "hello world".strip("hd") | 文字集合として扱う |
| Q8 | "abc123".lstrip("a") | 部分一致ではない |
| Q9 | "!!ok!!".strip("!") | 同種記号を削除 |
| Q10 | "python".strip("pn") | 両端のp/nが削除される |
【5】find() / rfind() / index() 特訓10問
部分文字列の位置を検索する。
"text".find("x")
# => 2
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | "apple".find("p") | 最初のpの位置 |
| Q2 | "apple".rfind("p") | 右側から探す |
| Q3 | "banana".find("na") | 最初の”na” |
| Q4 | "banana".rfind("na") | 最後の”na” |
| Q5 | "apple".find("z") | 見つからなければ -1 |
| Q6 | "apple".index("p") | findと同じだがエラー出す |
| Q7 | "apple".find("p", 2) | 位置2以降で検索 |
| Q8 | "apple".find("p", 1, 3) | 範囲指定あり |
| Q9 | "a,b,c".find(",") | 区切り探し |
| Q10 | "Hello".find("hello") | 大文字小文字区別あり |
【6】upper() / lower() / title() / capitalize() 特訓10問
大文字・小文字変換。
"hello world".title()
# => 'Hello World'
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | "abc".upper() | 全大文字 |
| Q2 | "ABC".lower() | 全小文字 |
| Q3 | "python".capitalize() | 先頭だけ大文字 |
| Q4 | "hello world".title() | 各単語の先頭を大文字 |
| Q5 | "HeLLo".lower() | 混在文字も変換 |
| Q6 | "HELLO".capitalize() | H→H、残り→小文字 |
| Q7 | "123abc".upper() | 数字は変わらない |
| Q8 | "HELLO world".title() | 区切りで判定される |
| Q9 | "日本語".upper() | 英字のみ変化 |
| Q10 | "hello world".capitalize().upper() | メソッドの組み合わせ |
【7】startswith() / endswith() 特訓10問
特定の文字で始まる・終わるかを判定。
"python.txt".endswith(".txt")
# => True
Python| No | 問題 | ヒント |
|---|---|---|
| Q1 | "hello".startswith("h") | True |
| Q2 | "hello".endswith("o") | True |
| Q3 | "python.txt".endswith(".txt") | ファイル拡張子 |
| Q4 | "hello".startswith("H") | 大文字注意 |
| Q5 | "2025-11-06".startswith("2025") | 日付の始まり |
| Q6 | "test.py".endswith(".py") | Pythonファイルか確認 |
| Q7 | "note.md".endswith((".md", ".txt")) | 複数指定OK |
| Q8 | "applepie".startswith("apple") | 部分一致 |
| Q9 | "readme.txt".startswith("r") and endswith(".txt") | 複合条件 |
| Q10 | "hello world".startswith("he", 0, 2) | 範囲指定も可能 |
これらを順に練習すると、
🔹文字列操作の実務パターンを「メソッド名で想起」できる
🔹処理を組み合わせる応用力がつく
🔹正規表現に進む前の“安全で強力な基礎”が完成

