You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python文本计算器异常:输入乘除指令仍执行加法运算求助

问题根源

你的条件判断写法错误。比如if choice == 'Add' or 'add' or 'ADD':,Python会将其拆成三个独立表达式:choice == 'Add'、'add'、'ADD'。非空字符串在布尔判断中会被视为True,所以不管输入的choice是什么,这个if条件永远成立,直接执行加法函数,后面的elif分支根本不会触发。

解决思路

方案1:修正条件判断逻辑

两种写法可选,第二种更简洁:

  • 写法一:把每个比较都明确写全:if choice == 'Add' or choice == 'add' or choice == 'ADD':
  • 写法二(推荐):将输入统一转换为小写(或大写),只需一次判断:if choice.lower() == 'add':

方案2:移除全局变量(更规范的写法)

当前代码使用global全局变量传递结果,其实可以让运算函数直接返回结果,在whichCalc中接收后再传递给主函数,避免全局变量带来的副作用,代码逻辑更清晰。

修改后的完整代码

版本1:移除全局变量的规范写法

def main():
    result = whichCalc()
    print(result)

def whichCalc():
    choice = input("Please enter one of the following; Add, Multiply or Divide: ")
    choice_lower = choice.lower()
    if choice_lower == 'add':
        return addNum()
    elif choice_lower == 'multiply':
        return multNum()
    elif choice_lower == 'divide':
        return divNum()
    else:
        print('What?')
        return None

def addNum():
    return firstNum + secondNum

def multNum():
    return firstNum * secondNum

def divNum():
    return firstNum / secondNum

firstNum = int(input('Enter the first number: '))
secondNum = int(input('Enter the second number: '))

main()

版本2:仅修正条件判断的简化写法

def main():
    whichCalc()
    print(finalNum)

def whichCalc():
    choice = input("Please enter one of the following; Add, Multiply or Divide: ")
    if choice.lower() == 'add':
        addNum()
    elif choice.lower() == 'multiply':
        multNum()
    elif choice.lower() == 'divide':
        divNum()
    else:
        print('What?')

def addNum():
    global finalNum
    finalNum = firstNum + secondNum
    return finalNum

def multNum():
    global finalNum
    finalNum = firstNum * secondNum
    return finalNum

def divNum():
    global finalNum
    finalNum = firstNum / secondNum
    return finalNum

firstNum = int(input('Enter the first number: '))
secondNum = int(input('Enter the second number: '))

main()

内容的提问来源于stack exchange,提问作者jf0ssGremlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:57:29