Python计算器拼写检查功能失效,每次触发误判求助
Python计算器拼写检查误判问题修复
问题原因
你的拼写检查逻辑存在根本性错误:not operation == ("add", "subtract", "multiply", "divide") 这行代码是将输入的字符串与元组直接比较,字符串永远不可能等于元组,因此operation == (...)的结果永远是False,加上not后就永远为True,导致每次都会触发"Invalid operation"的误判。
另外原代码还有逻辑顺序问题:先计算结果再做合法性检查,若输入非法操作,result变量未定义就执行return(result),会引发新的报错。
修正后的代码
# 获取用户输入的操作类型 operation = input("Enter 'add', 'subtract', 'multiply', or 'divide': ").lower() # 先执行合法性检查 valid_operations = ("add", "subtract", "multiply", "divide") if operation not in valid_operations: print("Invalid operation") return # 合法操作才执行计算逻辑 first_number = float(input("Enter first number: ")) second_number = float(input("Enter second number: ")) if operation == "add": result = first_number + second_number elif operation == "subtract": result = first_number - second_number elif operation == "multiply": result = first_number * second_number elif operation == "divide": result = first_number / second_number return(result)
关键修改点
- 将判断逻辑改为
operation not in valid_operations,正确检查输入是否属于合法操作集合 - 调整代码顺序:先做合法性检查,通过后再获取数字并计算结果,避免未定义变量的报错
- 补充了原代码缺失的
first_number和second_number输入逻辑(原代码中这两个变量未定义,会直接引发运行报错)
内容的提问来源于stack exchange,提问作者Skything
相关产品推荐
相关产品推荐

