では、「文字列と数値」の学習内容に沿って、
初心者でも無理なく進められるように、レベル別(基礎・中級・応用)で
それぞれ 練習問題+解答+解説 をセットで作ります。
基礎編(レベル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))
PythonQ10.
次のコードの出力を予想してください。
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("整数を入力してください。")
PythonQ13.
小数 "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)
PythonQ18.
"-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
PythonQ22.
input() で複数の数値をスペース区切りで入力し、その合計を出力してください。
例:
入力 → 10 20 30
出力 → 合計: 60
解答例:
s = input("数値をスペース区切りで入力: ")
nums = [int(x) for x in s.split()]
print("合計:", sum(nums))
PythonQ23.
"¥1,200" のような文字列から金額(整数)だけを取り出してください。
解答例:
s = "¥1,200"
n = int(s.replace("¥", "").replace(",", ""))
print(n) # 1200
PythonQ24.
"True" や "False" を文字列から論理値(bool)に変換してください。
解答例:
s = "True"
flag = s == "True"
print(flag) # True
PythonQ25.
次のコードの結果を説明してください。
print(str(10) + str(5))
print(10 + 5)
Python出力:
105
15
解説:
前者は文字列連結、後者は数値の加算。
Q26.
小数 "2.71828" を文字列として "2.72" に整形して出力してください。
解答例:
x = float("2.71828")
print(f"{x:.2f}")
PythonQ27.
次の文字列 "abc123xyz456" から数字部分だけを取り出し、合計してください。
解答例:
import re
s = "abc123xyz456"
nums = [int(x) for x in re.findall(r"\d+", s)]
print(sum(nums)) # -> 579
PythonQ28.
"00123" を整数に変換するとどうなりますか?
答え:
int("00123") # -> 123
Python解説:
先頭のゼロは無視される。
Q29.
"123"(全角数字)を整数に変換したい場合の対処方法を示してください。
解答例:
import unicodedata
s = "123"
half = unicodedata.normalize("NFKC", s)
print(int(half)) # -> 123
PythonQ30.
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}です" |
