Fetch the repository succeeded.
'''
20242215 贾瑞宁
计算器 v4.0
支持运算:复数/实数的加减乘除及对数运算
'''
'''
更新日志
v1.0 老师上课演示的程序
v2.0 加入数学运算方面的错误检验,提升健壮性
v2.1 加入输入错误方面的错误检验,提升健壮性
v3.0 拆分函数,增加可维护性
v4.0 增加对浮点数的支持
'''
import math # 导入math模块
#加
def Csum(num1, num2):
return num1 + num2
#减
def Csub(num1, num2):
return num1 - num2
#乘
def Cmul(num1, num2):
return num1 * num2
#除
def Cdiv(num1, num2):
if num2 == 0:
print("除数不能为0")
return 0.0
return num1 / num2
#对数
def Clog(num1, num2):
if num1 <= 0 or num2 <= 0:
print("对数函数的参数必须为正数")
return 0.0
return math.log(num1, num2)
#输入数字函数
def get_numbers():
while True:
flag2 = input("请问:需要复数(1)还是实数(2)运算?\n")
if flag2 == "1":
num1 = complex(input("请输入一个数:"))
num2 = complex(input("请输入另一个数:"))
break
elif flag2 == "2":
num1 = float(input("请输入一个数:"))
num2 = float(input("请输入另一个数:"))
break
else:
print("输入错误,请重新输入:")
return num1, num2
#输入运算符函数
def get_operator():
while True:
choice = input("请选择运算符(+,-,*,/,log):")
if choice in ["+", "-", "*", "/", "log"]:
break
else:
print("输入错误,请重新输入:")
return choice
flag = True
while flag:
num1, num2 = get_numbers() #输入数字
choice = get_operator() #输入运算符
#运算符判断
if choice == "+":
print(num1, choice, num2, "=", Csum(num1, num2))
elif choice == "-":
print(num1, choice, num2, "=", Csub(num1, num2))
elif choice == "*":
print(num1, choice, num2, "=", Cmul(num1, num2))
elif choice == "/":
print(num1, choice, num2, "=", Cdiv(num1, num2))
elif choice == "log":
print("log以", num1, "为底", num2, "的对数 =", Clog(num1, num2))
#询问是否开始新的运算
while True:
flag = input("是否开始一个新的运算(y/n):")
if flag == "n":
flag = False
break
elif flag == "y":
flag = True
break
else:
print("输入错误,请重新输入:")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。