import math
decide='y'
while True:
try:
while decide=='y':
# 提示用户输入
user_input = input("请输入: ")
# 将输入的字符串按照空格分割成三个部分
input_list = user_input.split()
# 检查是否确实输入了三个值
if len(input_list) != 3:
raise ValueError("输入格式不正确。请确保输入三个值。")
# 尝试转换第一个和第三个值为整数
first_int = float(input_list[0])
third_int = float(input_list[2])
# 如果转换成功,第二个值直接使用字符串
second_str = input_list[1]
# 跳出循环,因为输入已经成功处理
if second_str=='+':
result=first_int+third_int
elif second_str=='-':
result=first_int-third_int
elif second_str=='*':
result=first_int*third_int
elif second_str=='/':
result=first_int/third_int
else:
print('计算符号错误或超出权限')
print(round(result,1))
print('是否继续?y继续/n不继续')
decide=input()
break
except ValueError as e:
# 捕获转换错误或输入格式不正确的异常,并提示用户重新输入
print("输入无效,请重试。错误信息:", e)
还是有缺陷的,因为精度的问题Python中1.2-0.4不等于0.8,迫使我不得不取保留小数点一位。作为初学者的我并不清楚这个怎么精确,等之后有了更精细的方法再回来更新一下