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

Python
スポンサーリンク

では、「文字列と数値」の学習内容に沿って、
初心者でも無理なく進められるように、レベル別(基礎・中級・応用)で
それぞれ 練習問題+解答+解説 をセットで作ります。


基礎編(レベル1〜10)

文字列と数値の違い・基本的な変換の練習です。


Q1.

次のコードでエラーが出る理由を説明し、正しく動くように修正してください。

x = "100"
y = 20
print(x + y)
Python

解答例:

x = "100"
y = 20
print(int(x) + y)
Python

解説:
"100" は文字列、20 は整数。型が違うまま + を使うとエラーになります。
int() で文字列を数値に変換すればOK。


Q2.

"3.14" を数値にして、半径2の円の面積を求めてください。

解答例:

pi = "3.14"
r = 2
area = float(pi) * r * r
print(area)
Python

解説:
float("3.14") で小数に変換。
面積=πr²なので 3.14 * 2 * 2 = 12.56


Q3.

123 という整数を文字列に変換し、 "合計は123です" のように出力してください。

解答例:

x = 123
print("合計は" + str(x) + "です")
Python

解説:
str() で数値を文字列化。
数値のままでは文字列と連結できない。


Q4.

次の文字列 " 42\n" を整数 42 に変換してください。

解答例:

s = "  42\n"
n = int(s)
print(n)
Python

解説:
int() は前後の空白や改行を自動的に無視してくれる。
出力は 42


Q5.

リスト ["10", "20", "30"] の合計を計算してください。

解答例:

lst = ["10", "20", "30"]
total = sum([int(x) for x in lst])
print(total)
Python

解説:
リストの各要素は文字列なので、int() で変換してから sum()


Q6.

ユーザーに年齢を入力させて、来年の年齢を表示するプログラムを作ってください。

解答例:

age = int(input("年齢を入力してください: "))
print(f"来年は {age + 1} 歳です")
Python

解説:
input() は文字列を返すので int() で整数化。


Q7.

数値 123.456 を文字列化して出力してください。

解答例:

x = 123.456
print(str(x))
Python

解説:
str() で文字列化できる。結果は "123.456"


Q8.

次の文字列 "1,234" からカンマを取り除き、整数に変換してください。

解答例:

s = "1,234"
n = int(s.replace(",", ""))
print(n)
Python

解説:
replace(",", "") でカンマ削除 → int() で整数化。


Q9.

"50""70" を整数に変換し、合計を出力してください。

解答例:

a = "50"
b = "70"
print(int(a) + int(b))
Python

Q10.

次のコードの出力を予想してください。

x = 5
print("xの値は" + str(x * 2) + "です")
Python

出力:

xの値は10です

中級編(レベル11〜20)

入力処理やエラー処理を含む実践的な変換。


Q11.

input() で読み取った文字列を整数に変換し、2倍して出力してください。

解答例:

s = input("数字を入力してください: ")
n = int(s)
print(n * 2)
Python

解説:
input() の返り値は文字列。数値として使うには int()


Q12.

ユーザーが数値以外を入力したら「整数を入力してください」と表示してください。

解答例:

s = input("整数を入力: ")
try:
    n = int(s)
    print(f"2倍は {n * 2} です")
except ValueError:
    print("整数を入力してください。")
Python

Q13.

小数 "12.34" を整数にして出力してください(小数点以下は切り捨て)。

解答例:

s = "12.34"
n = int(float(s))
print(n)  # -> 12
Python

解説:
int("12.34") はエラーになるため、float() を挟む。


Q14.

"3.14159265" の小数点以下2桁だけを表示してください。

解答例:

pi = float("3.14159265")
print(f"{pi:.2f}")
Python

出力:

3.14

Q15.

文字列 "123abc" を数値に変換しようとするとどうなりますか?

答え:

ValueError: invalid literal for int() with base 10: '123abc'
Python

解説:
数字以外の文字が含まれると変換エラーになる。


Q16.

次のコードを動かして結果を説明してください。

x = "100"
y = "200"
print(x + y)
Python

出力:

100200

解説:
文字列同士の + は「足し算」ではなく「連結(つなげる)」。


Q17.

リスト ["5", "10", "15"] の平均を求めるプログラムを作ってください。

解答例:

lst = ["5", "10", "15"]
nums = [int(x) for x in lst]
avg = sum(nums) / len(nums)
print(avg)
Python

Q18.

"-7" を整数に変換してください。

解答例:

n = int("-7")
print(n)  # -7
Python

解説:
マイナス記号も int() が処理可能。


Q19.

float()int() の違いを簡単に説明してください。

解答:

  • int():整数に変換。小数点以下を切り捨てる。
  • float():小数を扱う型。より精密な数値計算が可能。

Q20.

"10""2" を「文字列のまま」掛け算できるか試し、結果を説明してください。

答え:

print("10" * 2)  # -> "1010"
Python

解説:
文字列 × 整数 は「繰り返し」になる(数値の掛け算ではない)。


応用編(レベル21〜30)

実務でよくある変換やフォーマットの応用。


Q21.

"1,000.5" を数値(float)に変換してください。

解答例:

s = "1,000.5"
num = float(s.replace(",", ""))
print(num)  # 1000.5
Python

Q22.

input() で複数の数値をスペース区切りで入力し、その合計を出力してください。

例:
入力 → 10 20 30
出力 → 合計: 60

解答例:

s = input("数値をスペース区切りで入力: ")
nums = [int(x) for x in s.split()]
print("合計:", sum(nums))
Python

Q23.

"¥1,200" のような文字列から金額(整数)だけを取り出してください。

解答例:

s = "¥1,200"
n = int(s.replace("¥", "").replace(",", ""))
print(n)  # 1200
Python

Q24.

"True""False" を文字列から論理値(bool)に変換してください。

解答例:

s = "True"
flag = s == "True"
print(flag)  # True
Python

Q25.

次のコードの結果を説明してください。

print(str(10) + str(5))
print(10 + 5)
Python

出力:

105
15

解説:
前者は文字列連結、後者は数値の加算。


Q26.

小数 "2.71828" を文字列として "2.72" に整形して出力してください。

解答例:

x = float("2.71828")
print(f"{x:.2f}")
Python

Q27.

次の文字列 "abc123xyz456" から数字部分だけを取り出し、合計してください。

解答例:

import re
s = "abc123xyz456"
nums = [int(x) for x in re.findall(r"\d+", s)]
print(sum(nums))  # -> 579
Python

Q28.

"00123" を整数に変換するとどうなりますか?

答え:

int("00123")  # -> 123
Python

解説:
先頭のゼロは無視される。


Q29.

"123"(全角数字)を整数に変換したい場合の対処方法を示してください。

解答例:

import unicodedata
s = "123"
half = unicodedata.normalize("NFKC", s)
print(int(half))  # -> 123
Python

Q30.

input() で入力された値を自動で数値か文字列か判定し、型を表示するプログラムを作ってください。

解答例:

s = input("値を入力してください: ")
try:
    if "." in s:
        v = float(s)
    else:
        v = int(s)
    print(f"数値型 ({type(v).__name__}) です")
except ValueError:
    print("文字列型です")
Python

📘 まとめ

操作関数
文字列→整数int()int("123")
文字列→小数float()float("3.14")
数値→文字列str()str(100)
文字列に埋め込みf"文字{変数}"f"結果は{n}です"
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました