Bài 26
Đề bài: Viết chương trình may tính với xử lý lỗi day du.
Xử lý: nhập sai kieu, chia cho 0, phep toan không hợp lệ,
căn số am.
Ví dụ: a=9, phep=can, b=không can
Kết quả: can(9) = 3.0
Ví dụ lỗi: a=9, phep=can, b=không căn nhung a=-4
Loi: Khong the tính căn bậc hai số am
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
import math
def may_tinh(a, phep, b=None):
if phep == "+": return a + b
if phep == "-": return a - b
if phep == "*": return a * b
if phep == "/":
if b == 0:
raise ZeroDivisionError("Khong the chia cho 0")
return a / b
if phep == "can":
if a < 0:
raise ValueError("Khong the tinh can bac hai so am")
return math.sqrt(a)
raise ValueError(f"Phep tinh '{phep}' khong hop le")
try:
a = float(input("Nhap a: "))
phep = input("Nhap phep (+ - * / can): ")
if phep == "can":
ket_qua = may_tinh(a, phep)
print(f"can({a}) = {round(ket_qua, 4)}")
else:
b = float(input("Nhap b: "))
ket_qua = may_tinh(a, phep, b)
print(f"{a} {phep} {b} = {round(ket_qua, 4)}")
except ValueError as e:
print(f"Loi gia tri: {e}")
except ZeroDivisionError as e:
print(f"Loi chia cho 0: {e}")