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()
このコードは、Pythonを使った拡張電卓アプリケーションです。基本的な四則演算に加え、三角関数(sin、cos、tan)を計算する機能を備えています。また、例外処理(エラーハンドリング)を活用して、ユーザーが誤った入力をした場合でも安全に処理できるようになっています。
コードの詳細な説明
1. モジュールのインポート
import math
- Pythonの**数学モジュール(math)**をインポートしています。
- 用途:
- 三角関数(
math.sin
、math.cos
、math.tan
)の計算。 - 角度をラジアンに変換するための
math.radians
関数。
- 三角関数(
2. 電卓アプリケーションの開始
print("拡張電卓アプリケーションへようこそ!")
- アプリケーションの開始を知らせるメッセージを表示します。
3. 無限ループで繰り返し計算
while True:
- ユーザーが明示的に終了を選ぶまで、計算を繰り返します。
4. 操作選択
print("1. 四則演算 (+, -, *, /)")
print("2. トリゴノメトリ関数 (sin, cos, tan)")
choice = input("操作を選んでください (1 または 2): ")
- ユーザーに、以下のどちらの計算を行うかを選択させます:
- 四則演算(
+
、-
、*
、/
)。 - 三角関数(
sin
、cos
、tan
)。
- 四則演算(
5. 四則演算の処理
if choice == "1":
num1 = float(input("1つ目の数値を入力してください: "))
operator = input("演算子を入力してください (+, -, *, /): ")
num2 = float(input("2つ目の数値を入力してください: "))
- 入力:
num1
とnum2
は計算する2つの数値。operator
は演算子(+
、-
、*
、/
)。
- 計算処理:
+
→ 足し算。-
→ 引き算。*
→ 掛け算。/
→ 割り算(ゼロで割ろうとした場合はZeroDivisionError
を発生させます)。
- 無効な演算子:
- 入力された演算子が無効であれば、エラーメッセージを表示して再入力を求めます。
6. 三角関数の処理
elif choice == "2":
trig_function = input("関数を選択してください (sin, cos, tan): ")
angle = float(input("角度を入力してください(度単位): "))
radians = math.radians(angle)
- 入力:
trig_function
は三角関数(sin
、cos
、tan
)。angle
は角度(度単位)。
- 処理:
- 入力された角度を
math.radians()
を使ってラジアンに変換。 - 指定された三角関数に応じて計算します。
- 入力された角度を
- 無効な関数:
- 無効な三角関数が指定された場合は、エラーメッセージを表示して再入力を求めます。
7. 例外処理
except ValueError:
print("無効な入力です。数値を入力してください。")
except ZeroDivisionError as e:
print(e)
ValueError
:- ユーザーが数値ではなく文字などを入力した場合に発生します。
- エラーメッセージを表示して処理を中断します。
ZeroDivisionError
:- 0で割ろうとした場合に発生します。
- エラーメッセージに「0で割ることはできません」を表示します。
8. 継続確認
cont = input("続けて計算しますか? (y/n): ")
if cont.lower() != "y":
print("電卓アプリケーションを終了します。")
break
- ユーザーに計算を続けるか確認します:
y
:続行。- その他(例:
n
):終了し、プログラムを終了します。
プログラムの動作例
1. 四則演算の例
入力:
操作を選んでください (1 または 2): 1
1つ目の数値を入力してください: 10
演算子を入力してください (+, -, *, /): *
2つ目の数値を入力してください: 5
出力:
計算結果: 50.0
2. 三角関数の例
入力:
操作を選んでください (1 または 2): 2
関数を選択してください (sin, cos, tan): cos
角度を入力してください(度単位): 60
出力:
計算結果: 0.5
3. 無効な入力の例
入力:
操作を選んでください (1 または 2): 1
1つ目の数値を入力してください: a
出力:
無効な入力です。数値を入力してください。
コードの特徴
- 多機能性:
- 四則演算と三角関数の計算が可能。
- 例外処理:
- 無効な入力やエラーを適切に処理してプログラムの安全性を高めている。
- 継続確認:
- ユーザーが計算を続けたいかどうか選べるインタラクティブな設計。
このプログラムは、基本的な計算処理に加え、トリゴノメトリ(角度計算)など、実用的な電卓機能を学ぶのに最適な例です!
コメント