0コメント

動くものをすぐ作れる!Python初心者のための「電卓アプリ」爆速コーディング術


【Python入門】初心者が作るべき最初の一歩!簡単なコマンドライン電卓を徹底解説:関数・if文・ループを学ぶ基礎固め完全ロードマップ



Python学習者の皆さん、プログラミングの基本を学ぶ最高の教材は「**自分で動くもの**」を作ることです。この記事では、**Python初心者**が必ず通る道である「**シンプルな電卓プログラム**」を題材に、コードの仕組みを**一行ずつ**徹底解説します。


この電卓プログラムを通じて、**関数**、**条件分岐**、**繰り返し(ループ)**といった、すべてのプログラミング言語に共通する**基礎の基礎**を完璧にマスターしましょう!



1. 電卓プログラムのPythonコード全体


まずは、今回作成する電卓プログラムの全コードをご覧ください。ご自身の環境で `calculator.py` などとして保存し、実行してみてください。






def add(x, y):

    """2つの数の和を返します"""

    return x + y


def subtract(x, y):

    """2つの数の差を返します"""

    return x - y


def multiply(x, y):

    """2つの数の積を返します"""

    return x * y


def divide(x, y):

    """2つの数の商を返します (0での割り算を防ぎます)"""

    if y == 0:

        return "エラー: 0で割ることはできません"

    return x / y


def calculator():

    print("シンプル電卓へようこそ!")

    print("利用可能な操作:")

    print("1. 足し算 (+)")

    print("2. 引き算 (-)")

    print("3. 掛け算 (*)")

    print("4. 割り算 (/)")

    print("-" * 20)


    while True:

        try:

            choice = input("操作を選択してください (1/2/3/4): ")

            if choice not in ('1', '2', '3', '4'):

                print("無効な選択です。1から4の番号を入力してください。")

                continue


            num1 = float(input("最初の数を入力してください: "))

            num2 = float(input("次の数を入力してください: "))


            if choice == '1':

                print(f"{num1} + {num2} = {add(num1, num2)}")


            elif choice == '2':

                print(f"{num1} - {num2} = {subtract(num1, num2)}")


            elif choice == '3':

                print(f"{num1} * {num2} = {multiply(num1, num2)}")


            elif choice == '4':

                result = divide(num1, num2)

                print(f"{num1} / {num2} = {result}")


        except ValueError:

            print("無効な入力です。数値を入力してください。")

            continue

        except Exception as e:

            print(f"予期せぬエラーが発生しました: {e}")

            continue


        next_calculation = input("別の計算をしますか? (はい/いいえ): ")

        if next_calculation.lower() not in ('はい', 'h', 'yes', 'y'):

            print("電卓を終了します。ありがとうございました!")

            break


if __name__ == "__main__":

    calculator()






2. Pythonプログラミングの要!「関数」の定義と役割


電卓の核となる計算ロジックを**関数**(function)として切り出すことで、コードが整理され、テストしやすくなります。これがプログラミングの基本です。



2.1. 基本的な四則演算関数の解説


コード行キーワード解説
def add(x, y):def**関数定義**の開始。addという名前の機能を作成し、2つの**引数**(入力値)xyを受け取ります。
return x + yreturn処理の結果を**返します**。この値が、関数を呼び出した場所に渡されます。
if y == 0:if割り算の関数divide内にある**条件分岐**。プログラミングでは、エラーになる可能性のある処理(ここでは0で割ること)を事前にチェックすることが重要です。





3. ユーザーと対話する「メインプログラム」の構造


メインのcalculator()関数は、メニュー表示、ユーザーからの入力受付、計算の繰り返し、そして**エラーからプログラムを守る**役割を担います。



3.1. 繰り返し処理(ループ)と終了条件


コード行キーワード解説
while True:while True無限ループ(繰り返し)の開始。この処理を、ユーザーが明示的に終了するまで(breakするまで)続けます。
choice = input(...)input()ユーザーにメッセージを表示し、**キーボードからの入力を受け取ります**。電卓が対話型になるための重要な機能です。
if choice not in (...)if / not inユーザーの入力がメニューの選択肢(1〜4)に**含まれていない**場合のチェック。不適切な入力を防ぐための基本的なバリデーション(検証)です。
continuecontinueループの**次の周**へ処理をスキップします。ここでは、無効な入力があった際に、最初から操作をやり直させる役割です。
breakbreakループを**強制終了**します。ユーザーが「いいえ」を選択した場合にプログラムを停止させます。


3.2. エラー処理(例外処理)の重要性


Pythonでは、予期せぬエラー(例外)でプログラムが停止しないよう**try...except**を使って対策します。初心者にとって、この構造を理解することは非常に重要です。


コード行キーワード解説
try:tryエラーが発生する可能性があるコードブロックを囲みます。
except ValueError:excepttryブロック内で**数値変換エラー(ValueError)**が発生した場合に、この処理を実行します。例えば、数字の代わりに「あ」と入力された場合などです。


3.3. 計算の実行と結果の表示


コード行キーワード解説
num1 = float(input(...))float()input()で受け取った文字列を、**小数も扱える数値**(浮動小数点数)型に変換しています。
elif choice == '4':elif複数の条件を順番にチェックしていくための命令。ここでは、choice'1'でも'2'でも'3'でもなかった場合に、'4'であるかをチェックします。
print(f"{num1} + {num2} = ...")f-stringPython 3.6以降で使える便利な出力形式。文字列の中に波括弧 {} を使い、変数や関数(add(num1, num2))の結果を埋め込みます。





4. まとめと実行の「おまじない」


最後に、プログラムの実行開始を指示するPython特有のコードです。



コード行キーワード解説
if __name__ == "__main__":__main__**プログラムの実行開始地点**を示すPythonの決まり文句です。このファイルが「直接」実行された場合にのみ、次の行が動作します。
calculator()関数呼び出し定義したメイン関数を実行し、電卓を起動します。


この電卓プログラムを完全に理解できたら、あなたはもうPythonプログラミングの基礎をしっかりと固めています!次は、このコードに**履歴機能**や**平方根**の計算機能を追加するなど、自分で機能を拡張してみることにチャレンジしてみてください。学習を応援しています!




この記事へのコメント