This question already has answers here:
How to test multiple variables against a value?
(24个答案)
5年前关闭。
手头的任务很简单,做一个简短的程序,要求一个cpsc先决条件(编号217219,或233)和一个数学先决条件(217或251),如果你有一个这样的类作为先决条件,那么它应该说先决条件满足,如果不满足,那么先决条件不满足。我的代码如下(不要笑,字面上最大的python noob):
cpsc=input("Which cpsc course have you taken (only pick one): ")
math=input("which math course have you taken (only pick one): ")

if cpsc==(217 or 219 or 233) and math ==(217 or 251)
    print("prerequisites met")
else:
    print("prerequisites not met")

我的每一个输入都只给我一个else打印,我假设它在cpsc==math==中的比较有问题,我该怎么做才能使这个工作?任何帮助都将不胜感激。

最佳答案

对不起,我笑了
开玩笑,但是。。哈哈哈。好吧,对不起。让我们直说重点。
为什么它不能提供所需的输出?
你的if语句有点问题。试着在你的对讲机里测试一下:)

a = 233
if a == (217 or 219 or 233):
    print (True)
else:
    print (False)

这将打印False。你知道为什么吗?
实际上,在您的案例中,or的使用有点不合适。
(您可以尝试评估(217 or 219 or 233))。在这里,您实际上是在执行逻辑比较,使用(217 or 219 or 233)作为运算符(单击链接,它在C中,但应该很容易理解)。
解决这个问题
您可以使用or运算符,将“所需”值列为一个列表:
if a in [217, 219, 233] and math in [217, 251]:
    #do something

编辑:)
啊,是的。我忘了说上面的代码现在还不能工作。你又少了一件事。
那是什么?事实上in总是给你一个字符串。因此,如果input的值是a,它仍然不起作用,因为"217"(整数)不等于217(字符串)。
要解决此问题,请使用"217"函数将输入转换为整数。
cpsc = int(input("Which cpsc course have you taken (only pick one): "))
math = int(input("which math course have you taken (only pick one): "))

这就是全部。。希望这有帮助!

关于python - 简单比较先决条件不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19580573/

10-11 07:40