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

Python
スポンサーリンク

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" に並べ替えて出力してください。(ヒント:splitjoin

解答例:

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"{変数}" で文字列に変数を埋め込むことができます。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました