Pythonの「文字列」に関する練習問題を、初心者向けにレベル別で50問用意し、解答と解説付きで紹介します。
レベル分けは以下のようにします:
- 基礎(Level 1):文字列の扱い、基本的な操作(15問)
- 中級(Level 2):文字列メソッド、型変換、条件分岐との組み合わせ(20問)
- 応用(Level 3):リストやループとの連携、文字列フォーマット、少し複雑な処理(15問)
【Level 1:基礎】文字列の扱い(15問)
Q1
変数 name に "Alice" を入れて、print で出力してください。
解答例:
name = "Alice"
print(name)
Python解説: 文字列はクォーテーションで囲む必要があります。
Q2
"Hello" と "World" を連結して "HelloWorld" と表示してください。
解答例:
print("Hello" + "World")
Python解説: + 演算子で文字列をつなげられます。
Q3
変数 age に 20 を入れて、"年齢は20です" と表示してください。文字列と数値を連結する方法を使う。
解答例:
age = 20
print("年齢は" + str(age) + "です")
Python解説: 数値を文字列に変換するには str() を使います。
Q4
'Python' という文字列を2回繰り返して表示してください。
解答例:
print("Python" * 2)
Python解説: * 演算子で文字列を繰り返すことができます。
Q5
空文字列 "" を作って変数 empty に代入してください。
解答例:
empty = ""
Python解説: 空文字列は長さ0の文字列です。
Q6
文字列 "apple" の長さを len() で求めてください。
解答例:
print(len("apple"))
Python解説: len() は文字列の文字数を返します。
Q7
文字列 "Hello" の1文字目を取り出してください。
解答例:
text = "Hello"
print(text[0])
Python解説: インデックスは0から始まります。
Q8
文字列 "Hello" の最後の文字を取り出してください。
解答例:
text = "Hello"
print(text[-1])
Python解説: -1 は最後の文字を意味します。
Q9
文字列 "Python" の2文字目から4文字目までを取り出してください。
解答例:
text = "Python"
print(text[1:4])
Python解説: スライス [start:end] は start から end-1 までを抽出します。
Q10
次のコードの出力は何ですか?
print("Hi" + str(3))
Python解答例:
Hi3
解説: 数値3を str() で文字列に変換して連結しています。
Q11
次のコードの出力は何ですか?
print("Hi" * 3)
Python解答例:
HiHiHi
解説: * 演算子で文字列を繰り返しています。
Q12
"apple" と "banana" の文字列を1つの文字列として連結してください。
解答例:
fruit = "apple" + "banana"
print(fruit)
Python解説: + 演算子で2つの文字列を結合します。
Q13
name = "Bob" のとき、print("Hello, " + name + "!") の出力は?
解答例:
Hello, Bob!
解説: 文字列と変数を + で連結しています。
Q14
文字列 "Python" の長さを求め、len() の結果を出力してください。
解答例:
text = "Python"
print(len(text))
Python解説: "Python" は6文字なので出力は 6 になります。
Q15
空文字列の長さは何ですか?
解答例:
print(len(""))
Python解説: 空文字列は0文字なので出力は 0 です。
【Level 2:中級】文字列メソッド・型変換・条件分岐(20問)
Q16
文字列 "Python" をすべて小文字に変換してください。
解答例:
text = "Python"
print(text.lower())
Python解説: lower() は文字列をすべて小文字にします。
Q17
文字列 "Python" をすべて大文字に変換してください。
解答例:
text = "Python"
print(text.upper())
Python解説: upper() は文字列をすべて大文字にします。
Q18
文字列 " Hello " の両端の空白を取り除いてください。
解答例:
text = " Hello "
print(text.strip())
Python解説: strip() は先頭と末尾の空白を削除します。
Q19
文字列 "apple,banana,cherry" をカンマ , で分割してリストにしてください。
解答例:
fruits = "apple,banana,cherry"
print(fruits.split(","))
Python解説: split() は指定した文字で文字列を分割し、リストを返します。
Q20
リスト ["apple", "banana", "cherry"] を , でつなぎ、1つの文字列にしてください。
解答例:
fruits = ["apple", "banana", "cherry"]
print(",".join(fruits))
Python解説: join() はリストの要素を文字列で結合します。
Q21
文字列 "hello" の先頭文字が "h" で始まるか確認してください。
解答例:
text = "hello"
print(text.startswith("h"))
Python解説: startswith() は指定文字で始まるか確認します。
Q22
文字列 "hello" の末尾が "o" で終わるか確認してください。
解答例:
text = "hello"
print(text.endswith("o"))
Python解説: endswith() は指定文字で終わるか確認します。
Q23
文字列 "apple" に "p" が含まれているか確認してください。
解答例:
text = "apple"
print("p" in text)
Python解説: in 演算子で部分文字列の存在を確認できます。
Q24
文字列 "12345" が数字だけで構成されているか確認してください。
解答例:
text = "12345"
print(text.isdigit())
Python解説: isdigit() は文字列がすべて数字かどうかを返します。
Q25
文字列 "Hello World" の "World" を "Python" に置き換えてください。
解答例:
text = "Hello World"
print(text.replace("World", "Python"))
Python解説: replace() は指定文字列を別の文字列に置換します。
Q26
次の文字列 " Python " の両端空白を削除したあと大文字に変換してください。
解答例:
text = " Python "
print(text.strip().upper())
Python解説: strip() → upper() とメソッドを連続して使えます。
Q27
文字列 "apple,banana,cherry" のリストに分割し、2番目の要素を出力してください。
解答例:
fruits = "apple,banana,cherry".split(",")
print(fruits[1])
Python解説: split() でリスト化し、インデックスで取り出します。
Q28
ユーザー入力を受け取り、それが "yes" なら "OK", "no" なら "Cancel" と表示してください。
解答例:
answer = input("yes or no? ")
if answer == "yes":
print("OK")
elif answer == "no":
print("Cancel")
else:
print("Unknown")
Python解説: input() で文字列を受け取り、条件分岐で判定します。
Q29
文字列 "Python123" から数字だけを取り出してください。(ヒント:ループ使用)
解答例:
text = "Python123"
numbers = ""
for c in text:
if c.isdigit():
numbers += c
print(numbers)
Python解説: isdigit() を使って数字のみ抽出します。
Q30
文字列 "Hello" を逆順にしてください。
解答例:
text = "Hello"
print(text[::-1])
Python解説: スライス [start:end:step] の step=-1 で逆順にできます。
Q31
文字列 "hello" の1文字目を "H" に変更してください。(文字列はイミュータブルなので新しい文字列を作る)
解答例:
text = "hello"
text = "H" + text[1:]
print(text)
Python解説: 文字列は変更不可なので、新しく作り直す必要があります。
Q32
文字列 "Python" の "y" の位置(インデックス)を求めてください。
解答例:
text = "Python"
print(text.index("y"))
Python解説: index() は最初に出てくる文字の位置を返します。
Q33
文字列 "Python" の "z" の位置を調べるとエラーになる場合があります。安全に探す方法は?
解答例:
text = "Python"
print(text.find("z"))
Python解説: find() は見つからない場合 -1 を返すので安全です。
Q34
文字列 "Hello World" の " "(空白)の数を数えてください。
解答例:
text = "Hello World"
print(text.count(" "))
Python解説: count() は指定文字列の出現回数を返します。
【Level 3:応用】リストやループとの連携、文字列フォーマット、少し複雑な処理(15問)
Q35
文字列 "python" の1文字目を大文字にしてください。
解答例:
text = "python"
print(text.capitalize())
Python解説: capitalize() は先頭文字だけ大文字にします。
Q36
文字列 "python programming" のすべての単語の先頭を大文字にしてください。
解答例:
text = "python programming"
print(text.title())
Python解説: title() は各単語の先頭を大文字にします。
Q37
文字列 " Hello World " の両端と余分な空白を削除し、単語間は1つの空白にしてください。
解答例:
text = " Hello World "
print(" ".join(text.split()))
Python解説: split() で単語ごとに分割 → join() で結合して余分な空白を除去します。
Q38
文字列 "123" を整数に変換してください。
解答例:
num = int("123")
print(num)
Python解説: int() で文字列を整数に変換できます。
Q39
文字列 "12.34" を浮動小数点数に変換してください。
解答例:
num = float("12.34")
print(num)
Python解説: float() で文字列を浮動小数点に変換できます。
Q40
ユーザー入力で数字を受け取り、それを2倍して表示してください。
解答例:
num = int(input("数字を入力: "))
print(num * 2)
Python解説: input() は文字列を返すので、int() で整数に変換します。
Q41
文字列 "apple,banana,cherry" をリストにして、for で1つずつ出力してください。
解答例:
fruits = "apple,banana,cherry".split(",")
for fruit in fruits:
print(fruit)
Python解説: split() と for で繰り返し処理できます。
Q42
文字列 "hello" の中で "l" が何回出現するか数えてください。
解答例:
text = "hello"
print(text.count("l"))
Python解説: count() は文字列の出現回数を返します。
Q43
文字列 "Python" を文字ごとにリストに変換してください。
解答例:
text = "Python"
print(list(text))
Python解説: list() で文字列を1文字ずつのリストにできます。
Q44
文字列 "Python" の中に "Py" が含まれるか確認してください。
解答例:
text = "Python"
print("Py" in text)
Python解説: in 演算子で部分文字列の有無を確認できます。
Q45
文字列 "Python" の "on" の位置を見つけてください。
解答例:
text = "Python"
print(text.find("on"))
Python解説: find() は部分文字列の開始位置を返します。
Q46
文字列 "Hello World" を "World Hello" に並べ替えて出力してください。(ヒント:split と join)
解答例:
text = "Hello World"
words = text.split()
words.reverse()
print(" ".join(words))
Python解説: split() → reverse() → join() で単語順を反転できます。
Q47
文字列 "python" を "Python" に変換してください。
解答例:
text = "python"
print(text.capitalize())
Python解説: capitalize() は先頭文字を大文字にします。
Q48
文字列 "PYTHON" を小文字に変換してください。
解答例:
text = "PYTHON"
print(text.lower())
Python解説: lower() で小文字化できます。
Q49
文字列 " python " の両端の空白を削除し、大文字に変換してください。
解答例:
text = " python "
print(text.strip().upper())
Python解説: strip() → upper() で整形可能です。
Q50
ユーザー入力で名前を受け取り、"こんにちは、[名前]さん" と表示してください。(ヒント:f文字列 を使用)
解答例:
name = input("名前を入力: ")
print(f"こんにちは、{name}さん")
Python解説: f"{変数}" で文字列に変数を埋め込むことができます。
