这是我正在处理的计算器的一部分。本节旨在比较操作整数值(第2行)。下一行是为了捕获用户是否输入无效值(不是数字1-4),如果是,则打印一个句子并结束程序。但是,无论输入什么输入,它是否正在打印句子并结束程序,是否等于1-4。
def main():
operation = int(input("Hello, What would you like to do? (1)ADD, 2)SUBTRACT, 3)MULTIPLY, or 4)DIVIDE)"))
if(operation != 1,2,3 or 4):
print("I'm sorry, but your an idiot >.>")
import sys
sys.exit()
else:
pass
P.S。第4行(你的)的语法错误是故意的
答案 0 :(得分:1)
首先,“或”有点破坏它,即使没有“或”也可以。 这就像使用以下
if (x == 1) or (2):
print "x equals 1 or 2 exists"
为了更好地解决这个问题,请尝试执行“if(4):” 它将始终返回True,因为存在“4”。它返回False的唯一时间是“4”是“0”,“无”或“假”而是。
即使在删除“或”之后,它也无法按照您想要的方式运行。 因为Python将“1,2,3,4”视为元组
(1,2,3,4)
所以它正在检查“操作”是否直接等于“(1,2,3,4)”。
试试这个
if operation not in (1,2,3,4):
print "It's spelled you're"
else:
pass
所以现在它正在检查给定元组中“操作”是否
。答案 1 :(得分:0)
您尝试将操作与有效值进行比较的方式不正确,我建议您尝试检查列表中是否存在操作值,如果是这样,请执行相应处理,如下所示:
def main():
operation = int(input("Hello, What would you like to do? (1)ADD, 2)SUBTRACT, 3)MULTIPLY, or 4)DIVIDE)"))
if operation not in [1,2,3,4]:
print("I'm sorry, but your an idiot >.>")
import sys
sys.exit()
else:
pass