FCC Arithmetic Formater问题:运算符为+/-时循环仍输出错误的原因
运算符检查逻辑错误分析
你的代码触发错误的核心原因是条件判断的逻辑运算符用错了:
原代码中的判断条件:
if operator != '+' or operator != '-' :
这个逻辑永远为真:
- 当运算符是
+时,operator != '-'成立,整个or表达式结果为真 - 当运算符是
-时,operator != '+'成立,整个or表达式结果为真
无论运算符是+还是-,都会进入错误分支。
修正方案
有两种正确的写法:
- 将
or改为and,表示“既不是+也不是-”时触发错误:
if operator != '+' and operator != '-' : return print("Error: Operator must be '+' or '-'.")
- 更简洁的写法,用
not in判断运算符不在允许的集合中:
if operator not in ('+', '-') : return print("Error: Operator must be '+' or '-'.")
内容的提问来源于stack exchange,提问作者Omonimo
相关产品推荐
相关产品推荐

