【Python入門】初心者が作るべき最初の一歩!簡単なコマンドライン電卓を徹底解説:関数・if文・ループを学ぶ基礎固め完全ロードマップ
Python学習者の皆さん、プログラミングの基本を学ぶ最高の教材は「**自分で動くもの**」を作ることです。この記事では、**Python初心者**が必ず通る道である「**シンプルな電卓プログラム**」を題材に、コードの仕組みを**一行ずつ**徹底解説します。
この電卓プログラムを通じて、**関数**、**条件分岐**、**繰り返し(ループ)**といった、すべてのプログラミング言語に共通する**基礎の基礎**を完璧にマスターしましょう!
1. 電卓プログラムのPythonコード全体
まずは、今回作成する電卓プログラムの全コードをご覧ください。ご自身の環境で `calculator.py` などとして保存し、実行してみてください。
def add(x, y): """2つの数の和を返します""" return x + ydef subtract(x, y): """2つの数の差を返します""" return x - ydef multiply(x, y): """2つの数の積を返します""" return x * ydef divide(x, y): """2つの数の商を返します (0での割り算を防ぎます)""" if y == 0: return "エラー: 0で割ることはできません" return x / ydef 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("電卓を終了します。ありがとうございました!") breakif __name__ == "__main__": calculator()2. Pythonプログラミングの要!「関数」の定義と役割
電卓の核となる計算ロジックを**関数**(function)として切り出すことで、コードが整理され、テストしやすくなります。これがプログラミングの基本です。
2.1. 基本的な四則演算関数の解説
| コード行 | キーワード | 解説 |
|---|---|---|
def add(x, y): | def | **関数定義**の開始。addという名前の機能を作成し、2つの**引数**(入力値)xとyを受け取ります。 |
return x + y | return | 処理の結果を**返します**。この値が、関数を呼び出した場所に渡されます。 |
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)に**含まれていない**場合のチェック。不適切な入力を防ぐための基本的なバリデーション(検証)です。 |
continue | continue | ループの**次の周**へ処理をスキップします。ここでは、無効な入力があった際に、最初から操作をやり直させる役割です。 |
break | break | ループを**強制終了**します。ユーザーが「いいえ」を選択した場合にプログラムを停止させます。 |
3.2. エラー処理(例外処理)の重要性
Pythonでは、予期せぬエラー(例外)でプログラムが停止しないよう**try...except**を使って対策します。初心者にとって、この構造を理解することは非常に重要です。
| コード行 | キーワード | 解説 |
|---|---|---|
try: | try | エラーが発生する可能性があるコードブロックを囲みます。 |
except ValueError: | except | tryブロック内で**数値変換エラー(ValueError)**が発生した場合に、この処理を実行します。例えば、数字の代わりに「あ」と入力された場合などです。 |
3.3. 計算の実行と結果の表示
| コード行 | キーワード | 解説 |
|---|---|---|
num1 = float(input(...)) | float() | input()で受け取った文字列を、**小数も扱える数値**(浮動小数点数)型に変換しています。 |
elif choice == '4': | elif | 複数の条件を順番にチェックしていくための命令。ここでは、choiceが'1'でも'2'でも'3'でもなかった場合に、'4'であるかをチェックします。 |
print(f"{num1} + {num2} = ...") | f-string | Python 3.6以降で使える便利な出力形式。文字列の中に波括弧 {} を使い、変数や関数(add(num1, num2))の結果を埋め込みます。 |
4. まとめと実行の「おまじない」
最後に、プログラムの実行開始を指示するPython特有のコードです。
| コード行 | キーワード | 解説 |
|---|---|---|
if __name__ == "__main__": | __main__ | **プログラムの実行開始地点**を示すPythonの決まり文句です。このファイルが「直接」実行された場合にのみ、次の行が動作します。 |
calculator() | 関数呼び出し | 定義したメイン関数を実行し、電卓を起動します。 |
この電卓プログラムを完全に理解できたら、あなたはもうPythonプログラミングの基礎をしっかりと固めています!次は、このコードに**履歴機能**や**平方根**の計算機能を追加するなど、自分で機能を拡張してみることにチャレンジしてみてください。学習を応援しています!
この記事へのコメント