|
|
|
|
@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
# 存储计算历史记录
|
|
|
|
|
history = []
|
|
|
|
|
|
|
|
|
|
# 基础运算功能
|
|
|
|
|
def basic_calculation():
|
|
|
|
|
try:
|
|
|
|
|
num1 = float(input("请输入第一个数字:"))
|
|
|
|
|
num2 = float(input("请输入第二个数字:"))
|
|
|
|
|
operator = input("请输入运算符号(+、-、*、/):")
|
|
|
|
|
# 计算逻辑
|
|
|
|
|
if operator == "+":
|
|
|
|
|
result = num1 + num2
|
|
|
|
|
elif operator == "-":
|
|
|
|
|
result = num1 - num2
|
|
|
|
|
elif operator == "*":
|
|
|
|
|
result = num1 * num2
|
|
|
|
|
elif operator == "/":
|
|
|
|
|
if num2 == 0:
|
|
|
|
|
print("错误:除数不能为0!")
|
|
|
|
|
return
|
|
|
|
|
result = num1 / num2
|
|
|
|
|
else:
|
|
|
|
|
print("错误:无效的运算符号!")
|
|
|
|
|
return
|
|
|
|
|
# 记录计算历史
|
|
|
|
|
record = f"{num1} {operator} {num2} = {result:.2f}"
|
|
|
|
|
history.append(record)
|
|
|
|
|
print(f"计算结果:{result:.2f}")
|
|
|
|
|
except ValueError:
|
|
|
|
|
print("输入格式错误,请输入数字!")
|
|
|
|
|
|
|
|
|
|
# 十进制转二进制
|
|
|
|
|
def decimal_to_binary():
|
|
|
|
|
try:
|
|
|
|
|
decimal_num = int(input("请输入要转换的十进制整数:"))
|
|
|
|
|
if decimal_num < 0:
|
|
|
|
|
print("请输入非负整数!")
|
|
|
|
|
return
|
|
|
|
|
binary_num = bin(decimal_num)[2:] # bin()返回值带'0b'前缀,切片去掉
|
|
|
|
|
record = f"十进制{decimal_num} 转二进制 = {binary_num}"
|
|
|
|
|
history.append(record)
|
|
|
|
|
print(f"十进制{decimal_num}转换为二进制的结果:{binary_num}")
|
|
|
|
|
except ValueError:
|
|
|
|
|
print("输入格式错误,请输入整数!")
|
|
|
|
|
|
|
|
|
|
# 二进制转十进制
|
|
|
|
|
def binary_to_decimal():
|
|
|
|
|
binary_str = input("请输入要转换的二进制数(仅含0和1):")
|
|
|
|
|
# 验证二进制格式
|
|
|
|
|
if not all(c in "01" for c in binary_str):
|
|
|
|
|
print("错误:输入的不是二进制数!")
|
|
|
|
|
return
|
|
|
|
|
decimal_num = int(binary_str, 2)
|
|
|
|
|
record = f"二进制{binary_str} 转十进制 = {decimal_num}"
|
|
|
|
|
history.append(record)
|
|
|
|
|
print(f"二进制{binary_str}转换为十进制的结果:{decimal_num}")
|
|
|
|
|
|
|
|
|
|
# 查看历史记录
|
|
|
|
|
def show_history():
|
|
|
|
|
if history:
|
|
|
|
|
print("\n===== 计算历史记录 =====")
|
|
|
|
|
for i, record in enumerate(history, 1):
|
|
|
|
|
print(f"{i}. {record}")
|
|
|
|
|
else:
|
|
|
|
|
print("暂无计算历史记录!")
|
|
|
|
|
|
|
|
|
|
# 清除历史记录
|
|
|
|
|
def clear_history():
|
|
|
|
|
global history
|
|
|
|
|
history = []
|
|
|
|
|
print("历史记录已清除!")
|
|
|
|
|
|
|
|
|
|
# 主菜单
|
|
|
|
|
def main():
|
|
|
|
|
while True:
|
|
|
|
|
print("\n===== 简易计算器 =====")
|
|
|
|
|
print("1. 基础运算(+、-、*、/)")
|
|
|
|
|
print("2. 十进制转二进制")
|
|
|
|
|
print("3. 二进制转十进制")
|
|
|
|
|
print("4. 查看计算历史")
|
|
|
|
|
print("5. 清除计算历史")
|
|
|
|
|
print("6. 退出系统")
|
|
|
|
|
choice = input("请输入您的选择(1-6):")
|
|
|
|
|
if choice == "1":
|
|
|
|
|
basic_calculation()
|
|
|
|
|
elif choice == "2":
|
|
|
|
|
decimal_to_binary()
|
|
|
|
|
elif choice == "3":
|
|
|
|
|
binary_to_decimal()
|
|
|
|
|
elif choice == "4":
|
|
|
|
|
show_history()
|
|
|
|
|
elif choice == "5":
|
|
|
|
|
clear_history()
|
|
|
|
|
elif choice == "6":
|
|
|
|
|
print("感谢使用,再见!")
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
print("输入错误,请重新选择!")
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
main()
|