電卓アプリケーションは、プログラミングの基礎を実践するのに最適なプロジェクトです。この章では、Pythonを使って簡単な電卓アプリケーションを作成する方法を解説します。基本的な構造から、機能を少しずつ追加していく手順を学びましょう。
電卓アプリケーションの概要
作成するアプリケーションの機能
- ユーザーが数値を入力。
- 計算する演算子(+, -, *, /)を選択。
- 結果を出力。
- エラーハンドリング(ゼロ除算や無効な入力への対応)。
ステップ1:基本構造の作成
1. プログラムの流れ
1. ユーザーが2つの数値を入力。
2. ユーザーが演算子を選択。
3. 計算を実行。
4. 結果を表示。
2. 基本コードの作成
# 基本的な電卓アプリケーション
def calculator():
print("電卓アプリケーションへようこそ!")
# 数値の入力
num1 = float(input("1つ目の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("2つ目の数値を入力してください: "))
# 計算処理
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
result = num1 / num2
else:
print("無効な演算子です。")
return
# 結果を表示
print(f"計算結果: {result}")
# プログラムの実行
calculator()
詳しいコードの説明はこちら
ステップ2:エラーハンドリングの追加
無効な入力の処理
- ゼロ除算の防止:
ZeroDivisionError
を防ぐ。 - 数値以外の入力エラー:
ValueError
をキャッチ。
改良版コード
def calculator():
print("電卓アプリケーションへようこそ!")
try:
# 数値の入力
num1 = float(input("1つ目の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("2つ目の数値を入力してください: "))
# 計算処理
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
if num2 == 0:
raise ZeroDivisionError("0で割ることはできません。")
result = num1 / num2
else:
print("無効な演算子です。")
return
# 結果を表示
print(f"計算結果: {result}")
except ValueError:
print("無効な入力です。数値を入力してください。")
except ZeroDivisionError as e:
print(e)
# プログラムの実行
calculator()
ステップ3:機能の拡張
1. 繰り返し計算機能
改良コード
def calculator():
print("電卓アプリケーションへようこそ!")
while True:
try:
# 数値の入力
num1 = float(input("1つ目の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("2つ目の数値を入力してください: "))
# 計算処理
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
if num2 == 0:
raise ZeroDivisionError("0で割ることはできません。")
result = num1 / num2
else:
print("無効な演算子です。")
continue
# 結果を表示
print(f"計算結果: {result}")
except ValueError:
print("無効な入力です。数値を入力してください。")
except ZeroDivisionError as e:
print(e)
# 継続確認
cont = input("続けて計算しますか? (y/n): ")
if cont.lower() != "y":
print("電卓アプリケーションを終了します。")
break
# プログラムの実行
calculator()
2. トリゴノメトリ(sin, cos, tan)の追加
改良コード
import math
def calculator():
print("拡張電卓アプリケーションへようこそ!")
while True:
try:
print("1. 四則演算 (+, -, *, /)")
print("2. トリゴノメトリ関数 (sin, cos, tan)")
choice = input("操作を選んでください (1 または 2): ")
if choice == "1":
num1 = float(input("1つ目の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("2つ目の数値を入力してください: "))
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
if num2 == 0:
raise ZeroDivisionError("0で割ることはできません。")
result = num1 / num2
else:
print("無効な演算子です。")
continue
elif choice == "2":
trig_function = input("関数を選択してください (sin, cos, tan): ")
angle = float(input("角度を入力してください(度単位): "))
radians = math.radians(angle)
if trig_function == "sin":
result = math.sin(radians)
elif trig_function == "cos":
result = math.cos(radians)
elif trig_function == "tan":
result = math.tan(radians)
else:
print("無効な関数です。")
continue
else:
print("無効な選択です。")
continue
print(f"計算結果: {result}")
except ValueError:
print("無効な入力です。数値を入力してください。")
except ZeroDivisionError as e:
print(e)
cont = input("続けて計算しますか? (y/n): ")
if cont.lower() != "y":
print("電卓アプリケーションを終了します。")
break
calculator()
図解:電卓アプリケーションの流れ
1. 数値の入力
↓
2. 操作の選択(四則演算 または トリゴノメトリ)
↓
3. 計算結果の表示
↓
4. 継続確認(y/n)
まとめ
- 基本機能:四則演算の実装を通じて、基本的な計算ロジックを学べました。
- エラーハンドリング:無効な入力やゼロ除算など、エラー処理の方法を学びました。
- 機能拡張:繰り返し計算機能やトリゴノメトリ関数を追加することで、アプリケーションの幅を広げました。
電卓アプリケーションの作成を通じて、プログラミングの基本構造を学ぶことができました。次回は、もう少し複雑なプロジェクトに挑戦してみましょう!
次のステップ:簡単なテキストベースゲーム
次回は、シンプルなテキストベースゲームを作成します。ランダム要素を取り入れることで、さらに楽しいプログラムを構築する方法を学びます。お楽しみに!
コメント