【初心者向け】Pythonで四則演算電卓(コンソール版)を作ろう!|Python100本ノック Lesson 7

Pythonで学べる100のミニアプリ ロードマップ

はじめに

第6回では datetime を使って現在の日時を表示したな。
今回はいよいよ実用感ある 四則演算電卓 を作るで!
ユーザーが2つの数と演算子(+ - * /)を入力すると、結果を計算して表示するシンプルなアプリや。


完成イメージ

1つ目の数を入力してください:10
演算子を入力してください(+ - * /):*
2つ目の数を入力してください:3
結果: 30

ヒント(使う要素)

  • input():ユーザー入力
  • float():小数にも対応
  • if / elif / else:演算子ごとの分岐
  • 例外対策:ゼロ除算(/ 0)や不正入力に注意

コード全文(基本版)

まずは最小構成で動く版からいくで!

まずは↑のヒントを見て自分で調べたりして考えてみよ!
# Lesson 7: 四則演算電卓(コンソール版) 基本版

a = float(input("1つ目の数を入力してください:"))
op = input("演算子を入力してください(+ - * /):")
b = float(input("2つ目の数を入力してください:"))

if op == "+":
    result = a + b
elif op == "-":
    result = a - b
elif op == "*":
    result = a * b
elif op == "/":
    if b == 0:
        print("エラー:0で割ることはできません。")
        exit()
    result = a / b
else:
    print("エラー:演算子は + - * / のいずれかを入力してください。")
    exit()

print("結果:", result)

もう一歩:エラーに強い改良版

不正な数値や演算子を入れても落ちへん、やさしい電卓にしてみよか。
# Lesson 7: 四則演算電卓(コンソール版) 改良版

def read_number(msg):
    while True:
        s = input(msg)
        try:
            return float(s)
        except ValueError:
            print("数値を入力してください。(例:12, 3.14, -5 など)")

def read_operator(msg):
    while True:
        op = input(msg).strip()
        if op in ["+", "-", "*", "/"]:
            return op
        print("演算子は + - * / のいずれかを入力してください。")

a = read_number("1つ目の数を入力してください:")
op = read_operator("演算子を入力してください(+ - * /):")
b = read_number("2つ目の数を入力してください:")

if op == "/":
    if b == 0:
        print("エラー:0で割ることはできません。")
        exit()

result = {
    "+": a + b,
    "-": a - b,
    "*": a * b,
    "/": a / b
}[op]

print("結果:", result)

実行方法

  1. VSCodeで新しいファイルを作成
  2. コードをコピペして lesson7.py として保存
  3. ターミナルで実行:
python lesson7.py

(動かへん場合は python3 lesson7.py


応用アイデア

  • 続けて計算できる ループ機能(「続けますか? y/n」)
  • 先に式を一行で入力する電卓(例:「12 * 3」)→ split() で分解
  • 割り算の小数点以下の桁数指定round(result, 3) など)
  • 履歴保存with open(...,"a") でCSVやテキストへ追記)

まとめ

今回は コンソール版の四則演算電卓 を作って、
入力→分岐→計算→出力の基本フローをしっかり体験したで。
エラー処理を入れると、アプリがぐっと優しくて実用的になるのもポイントや!

👉 次回は Lesson 8: 単位変換アプリ(cm↔m、℃↔℉)
関数化して拡張しやすい作りを目指すで!