【Python第10回】実践!簡単な計算機アプリ作成

Python基礎講座 全10回(第10回・最終回)

【Python第10回】実践!簡単な計算機アプリ作成

ついに最終回です!これまで学んできた変数、演算子、リスト、条件分岐(if文)、ループ処理(while文)、例外処理(try-except)、および関数をすべて融合させ、コマンドライン電卓を作成しましょう。

📌 Python講座ロードマップ一覧(クリックで移動)

1. 計算機アプリケーションの要件定義

今回作成するコマンドライン電卓の処理フローは以下の通りです。

  • ユーザーに「1つ目の数値」「2つ目の数値」をキーボードから入力してもらう。
  • 行いたい演算(`+`, `-`, `*`, `/`)を選択してもらう。
  • 入力された値に基づいて計算を実行し、結果を出力する。
  • 0での割り算エラーや、数値以外の入力などの例外を安全に処理し、アプリを強制終了させない。
  • 「終了」と入力されるまで、繰り返し何度も計算を行えるようにする。

2. ユーザー入力を受け取る input 関数

Pythonでキーボードからの入力を取得する際には、組み込みの `input(“プロンプトメッセージ”)` 関数を使用します。

重要なのは、**`input()` 関数が受け取った値はすべて「文字列型(str)」になる**という特性です。数値を計算するためには、受け取った値に対して `float(入力値)` または `int(入力値)` を使用して「数値型への型変換(キャスト)」を行う必要があります。

3. 計算機アプリの完全なコード

これまでに習得した知識を結集させ、例外にも無限ループにも対応した本番レベルのCLI電卓プログラムコードです。

calculator.py
def calculate(num1, num2, operator):
    """四則演算を行う自作関数"""
    if operator == "+":
        return num1 + num2
    elif operator == "-":
        return num1 - num2
    elif operator == "*":
        return num1 * num2
    elif operator == "/":
        if num2 == 0:
            raise ZeroDivisionError  # エラーを発生させて下のエラー処理へ逃がす
        return num1 / num2
    else:
        return None

# 無限ループで計算処理を継続
while True:
    print("\n--- 簡易計算機アプリ ---")
    user_input = input("計算を開始しますか?(qを入力で終了):")
    if user_input == "q":
        print("アプリを終了します。")
        break  # ループを抜ける

    try:
        n1 = float(input("1つ目の数値を入力: "))
        op = input("記号を入力 (+, -, *, /): ")
        n2 = float(input("2つ目の数値を入力: "))
        
        result = calculate(n1, n2, op)
        
        if result is None:
            print("エラー: 演算記号が正しくありません。")
        else:
            print(f"計算結果: {result}")
            
    except ValueError:
        print("エラー: 数値を正しく入力してください。")
    except ZeroDivisionError:
        print("エラー: 0で割ることはできません。")

4. Python基本講座の完結にあたって

全10回に及んだPython基本講座の修了、本当におめでとうございます!🎉

基本的なデータの定義から、計算、条件による処理分け、繰り返し、関数化、モジュールの利用、そして外部データの読み書きと堅牢な例外処理の実装まで、Pythonの第一線で活躍するための土台知識をすべて体系的にマスターされました。

Pythonは学習すればするほど、データ分析(Pandas)、AI機械学習(Scikit-learn / PyTorch)、Web開発(Django / FastAPI)など、次のステージであなたの大きな強力な武器になってくれます。

この知識を活かし、次のプログラミングの旅路で素晴らしいプロダクトを作り上げてください!応援しております!