ここでは、input() の応用として「電卓(複数入力対応)」をテーマに、
初心者にもわかりやすく段階的に作っていきます。
ステップ1:最もシンプルな電卓(2つの数の足し算)
# --- シンプル電卓(足し算だけ) ---
a = int(input("1つ目の数を入力してください: "))
b = int(input("2つ目の数を入力してください: "))
print("合計は", a + b, "です。")
Python💬 実行例:
1つ目の数を入力してください: 10
2つ目の数を入力してください: 20
合計は 30 です。
ステップ2:1行で2つの数を入力(split)
input() + .split() を使うと、
「10 20」 のように1行で複数の数を入力できます。
# --- スペース区切り入力 ---
a_str, b_str = input("2つの数をスペースで区切って入力してください: ").split()
a = float(a_str)
b = float(b_str)
print("合計:", a + b)
Python💬 実行例:
2つの数をスペースで区切って入力してください: 12.5 3.5
合計: 16.0
ステップ3:複数の数をいくつでも入力できるようにする!
split() で区切った文字列を map(float, ...) でまとめて数値化します。
# --- 複数入力対応電卓(合計) ---
nums_str = input("数をスペースで区切って入力してください: ").split()
nums = list(map(float, nums_str)) # 文字列 → 数値リスト
print("入力された数:", nums)
print("合計:", sum(nums))
Python💬 実行例:
数をスペースで区切って入力してください: 10 20 30 40
入力された数: [10.0, 20.0, 30.0, 40.0]
合計: 100.0
ステップ4:計算方法を選べる「簡易メニュー電卓」
# --- 簡易メニュー付き電卓 ---
print("=== 電卓アプリ ===")
while True:
print("\n操作を選んでください:")
print("1) 足し算")
print("2) 引き算")
print("3) 掛け算")
print("4) 割り算")
print("5) 終了")
choice = input("番号を入力 → ").strip()
if choice == "5":
print("🧾 終了します。ありがとうございました!")
break
nums_str = input("数をスペースで区切って入力してください: ").split()
try:
nums = list(map(float, nums_str))
except ValueError:
print("⚠ 数字だけを入力してください。")
continue
if not nums:
print("⚠ 入力が空です。")
continue
if choice == "1":
result = sum(nums)
print("✅ 合計 =", result)
elif choice == "2":
result = nums[0]
for n in nums[1:]:
result -= n
print("✅ 結果 =", result)
elif choice == "3":
result = 1
for n in nums:
result *= n
print("✅ 結果 =", result)
elif choice == "4":
result = nums[0]
try:
for n in nums[1:]:
result /= n
print("✅ 結果 =", result)
except ZeroDivisionError:
print("⚠ 0 で割ることはできません。")
else:
print("⚠ 1〜5の数字を入力してください。")
Python💬 実行例:
=== 電卓アプリ ===
操作を選んでください:
1) 足し算
2) 引き算
3) 掛け算
4) 割り算
5) 終了
番号を入力 → 3
数をスペースで区切って入力してください: 2 3 4
✅ 結果 = 24.0
解説ポイント
| 仕組み | 内容 |
|---|---|
input().split() | スペース区切りで複数値を1行で入力できる |
map(float, nums_str) | 各要素を float(小数)に変換 |
sum(nums) | 合計を計算 |
| ループ+条件分岐 | メニューで動作を選択できるようにしている |
try/except | 入力ミスやゼロ除算を防ぐ安全設計 |
発展アイデア
- ファイルに計算履歴を保存する
- 「前回の結果」を次の計算に使えるようにする(
ans変数) eval()を使って「式(例:2+3*4)」を直接入力できる電卓に拡張mathモジュールを使って √, sin, cos, pow などの関数を追加
