Python | レベル別練習問題:文字列演算子

Python
スポンサーリンク

では、Python文字列演算子・操作に関する練習問題をレベル別(基礎・中級・応用)に50問作り、それぞれに解答と解説をつけます。初心者がすぐに試せるよう、Pythonでそのまま実行できる形式にします。


レベル分け

  • 基礎(1〜20問):文字列の連結、繰り返し、in 演算子など基本操作
  • 中級(21〜35問):文字列の比較、大文字小文字変換、スライスなど
  • 応用(36〜50問):複雑な文字列操作、フォーマット、検索・置換、実務的な例

1. 基礎編(1〜20問)

問題例(抜粋)

  1. "Hello""World" を連結して出力せよ。
  2. "Hi" を 4 回繰り返して出力せよ。
  3. "apple""pineapple" に含まれるか確認せよ。
  4. "cat""concatenate" に含まれるか確認せよ。
  5. "Python" の文字数を数えよ。
  6. "Python" の先頭1文字を出力せよ。
  7. "Python" の末尾1文字を出力せよ。
  8. "Python" の1文字目から3文字目までを切り出せ。
  9. "Python" の最後の3文字を切り出せ。
  10. "Python" を大文字に変換せよ。

(11〜20問も同様に文字列の基本操作を扱う)


2. 中級編(21〜35問)

  1. "Apple""apple" の大小比較をせよ。
  2. "banana""apple" の大小比較をせよ。
  3. "Hello World"" " で分割せよ。
  4. "Hello World""World" 部分だけ取り出せ。
  5. "Python"y の位置を取得せよ。
  6. "Python""3" を追加して "Python3" にせよ。
  7. "Python" を逆順にせよ。
  8. " Python " の前後の空白を削除せよ。
  9. "python" をタイトル形式 "Python" に変換せよ。
  10. "Hello World""!" が含まれるか確認せよ。

(31〜35問も文字列の変換・検索・分割・スライスを扱う)


3. 応用編(36〜50問)

  1. "apple,banana,cherry" をリストに変換せよ。
  2. "2025-11-05" から年、月、日を取り出せ。
  3. "Hello World"lL に置換せよ。
  4. "Hello World" の単語数を数えよ。
  5. "I have 2 apples" から数字だけを取り出せ。
  6. "2025-11-05""05/11/2025" に変換せよ。
  7. "Python" の各文字を1文字ずつ出力せよ。
  8. "a-b-c-d""a/b/c/d" に置換せよ。
  9. "PythonPython""Python""Java" に置換せよ。
  10. "Hello World" をリバースし、大文字に変換せよ。
  11. ユーザーから入力された文字列が "exit" なら終了するプログラムを作れ。
  12. " trim this " の前後空白を削除し、文字数を数えよ。
  13. "python,java,c++" をカンマ区切りでリスト化して、3番目の言語を取り出せ。
  14. "Hello World""World""Python" に置換せよ。
  15. "abc123def456" から数字だけを取り出して連結せよ。

基礎編 解答例(1〜20問)

# ------------------------------
# 基礎編(1〜20問)解答例
# ------------------------------

# 1. "Hello" と "World" を連結
print("1:", "Hello" + "World")  # HelloWorld
# 解説: + 演算子で文字列同士をつなげる

# 2. "Hi" を 4 回繰り返す
print("2:", "Hi" * 4)  # HiHiHiHi
# 解説: * 演算子で文字列を整数回繰り返せる

# 3. "apple" が "pineapple" に含まれるか確認
print("3:", "apple" in "pineapple")  # True
# 解説: in 演算子で部分文字列が含まれるか確認

# 4. "cat" が "concatenate" に含まれるか
print("4:", "cat" in "concatenate")  # True

# 5. "Python" の文字数
print("5:", len("Python"))  # 6
# 解説: len() で文字列の長さを取得

# 6. "Python" の先頭1文字
print("6:", "Python"[0])  # P
# 解説: インデックス0で先頭文字を取得

# 7. "Python" の末尾1文字
print("7:", "Python"[-1])  # n
# 解説: -1 で最後の文字を取得

# 8. "Python" の1文字目から3文字目まで
print("8:", "Python"[0:3])  # Pyt
# 解説: スライス[start:end]で文字列の部分取得

# 9. "Python" の最後の3文字
print("9:", "Python"[-3:])  # hon

# 10. "Python" を大文字に変換
print("10:", "Python".upper())  # PYTHON
# 解説: .upper() で大文字に変換

# 11. "Python" を小文字に変換
print("11:", "Python".lower())  # python
# 解説: .lower() で小文字に変換

# 12. "python" をタイトル形式に
print("12:", "python".title())  # Python
# 解説: .title() で単語の先頭を大文字に変換

# 13. "Hello World" に "!" が含まれるか
print("13:", "!" in "Hello World")  # False

# 14. "Python" の 'o' の位置を取得
print("14:", "Python".index("o"))  # 4
# 解説: .index() で指定文字の最初の位置を取得

# 15. "Python" に "3" を追加
print("15:", "Python" + "3")  # Python3

# 16. "Python" を逆順に
print("16:", "Python"[::-1])  # nohtyP

# 17. "  Python  " の前後の空白を削除
print("17:", "  Python  ".strip())  # Python
# 解説: .strip() で前後の空白を削除

# 18. "Python" の文字を1文字ずつ出力
for c in "Python":
    print("18:", c)
# 解説: forループで文字列の各文字を取得

# 19. "Python" の文字列をリスト化
print("19:", list("Python"))  # ['P','y','t','h','o','n']
# 解説: list() で文字列を文字単位のリストに変換

# 20. "Hello" と "World" を空白を入れて連結
print("20:", "Hello" + " " + "World")  # Hello World
Python

ポイントまとめ(基礎編)

  1. 連結は +:文字列同士をつなげる
  2. 繰り返しは *:文字列 × 整数
  3. 文字列の長さは len()
  4. 部分文字列の取得はスライス [start:end]
  5. 文字列の大文字・小文字変換は .upper() / .lower() / .title()
  6. 含まれるかチェックは in / not in
  7. 文字列を逆順にしたいときは [:: -1]
  8. 文字列をリスト化して1文字ずつ操作できる

中級編 解答例(21〜35問)

# ------------------------------
# 中級編(21〜35問)解答例
# ------------------------------

# 21. "Apple" と "apple" の比較
a = "Apple"
b = "apple"
print("21 a==b:", a == b)  # False
print("21 a<b :", a < b)   # True
# 解説: 大文字は小文字より文字コードが小さいので、"Apple" < "apple" が True

# 22. "banana" と "apple" の比較
print("22:", "banana" > "apple")  # True
# 解説: アルファベット順で b > a だから True

# 23. "Hello World" を空白で分割
text = "Hello World"
words = text.split(" ")
print("23:", words)  # ['Hello', 'World']

# 24. "Hello World" の "World" 部分だけ取り出す
print("24:", text.split(" ")[1])  # 'World'

# 25. "Python" の 'y' の位置を取得
print("25:", "Python".index("y"))  # 1

# 26. "Python" に "3" を追加
print("26:", "Python" + "3")  # Python3

# 27. "Python" を逆順に
print("27:", "Python"[::-1])  # nohtyP

# 28. "  Python  " の空白を削除
print("28:", "  Python  ".strip())  # 'Python'

# 29. "python" をタイトル形式に
print("29:", "python".title())  # 'Python'

# 30. "Hello World" に "!" が含まれるか
print("30:", "!" in "Hello World")  # False

# 31. "Hello World" を大文字に
print("31:", "Hello World".upper())  # HELLO WORLD

# 32. "HELLO WORLD" を小文字に
print("32:", "HELLO WORLD".lower())  # hello world

# 33. "python" の長さを取得
print("33:", len("python"))  # 6

# 34. "Python" の1文字目と最後の文字を結合
p = "Python"
print("34:", p[0] + p[-1])  # Pn

# 35. "Python" に含まれる文字 'o' の数を数える
print("35:", "Python".count("o"))  # 1
Python

応用編 解答例(36〜50問)

# ------------------------------
# 応用編(36〜50問)解答例
# ------------------------------

# 36. "apple,banana,cherry" をリストに変換
fruits = "apple,banana,cherry".split(",")
print("36:", fruits)  # ['apple', 'banana', 'cherry']

# 37. "2025-11-05" から年、月、日を取り出す
date = "2025-11-05".split("-")
year, month, day = date
print("37:", year, month, day)  # 2025 11 05

# 38. "Hello World" の 'l' を 'L' に置換
print("38:", "Hello World".replace("l","L"))  # HeLLo WorLd

# 39. "Hello World" の単語数
print("39:", len("Hello World".split()))  # 2

# 40. "I have 2 apples" から数字だけ取り出す
import re
s = "I have 2 apples"
numbers = re.findall(r'\d+', s)
print("40:", "".join(numbers))  # 2

# 41. "2025-11-05" を "05/11/2025" に変換
d = "2025-11-05".split("-")
formatted = f"{d[2]}/{d[1]}/{d[0]}"
print("41:", formatted)  # 05/11/2025

# 42. "Python" の各文字を1文字ずつ出力
for c in "Python":
    print("42:", c)

# 43. "a-b-c-d" を "a/b/c/d" に置換
print("43:", "a-b-c-d".replace("-","/"))  # a/b/c/d

# 44. "PythonPython" の "Python" を "Java" に置換
print("44:", "PythonPython".replace("Python","Java"))  # JavaJava

# 45. "Hello World" をリバースして大文字に
print("45:", "Hello World"[::-1].upper())  # DLROW OLLEH

# 46. 入力が "exit" なら終了するプログラム
# # 以下は実行すると終了するのでコメントアウト
# user_input = input("入力してください: ")
# if user_input == "exit":
#     print("終了します")

# 47. "   trim this   " の空白削除と文字数
trimmed = "   trim this   ".strip()
print("47:", trimmed, len(trimmed))  # trim this 9

# 48. "python,java,c++" をリスト化して3番目を取り出す
langs = "python,java,c++".split(",")
print("48:", langs[2])  # c++

# 49. "Hello World" の "World" を "Python" に置換
print("49:", "Hello World".replace("World","Python"))  # Hello Python

# 50. "abc123def456" から数字だけ取り出して連結
s = "abc123def456"
nums = "".join(re.findall(r'\d+', s))
print("50:", nums)  # 123456
Python

応用ポイント

  • split()join() で文字列とリストを変換できる
  • replace() で文字列の置換
  • [::-1] で文字列の逆順
  • 正規表現 re.findall で数字や特定文字を抽出可能
  • f文字列や .strip() で文字列整形ができる
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました