简单比较不起作用的先决条件

Bab*_*lbo 2 python

手头的任务很简单,制作一个简短的程序,要求提供cpsc先决条件(数字217,219或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")
Run Code Online (Sandbox Code Playgroud)

每个输入我有它只是给了我别的打印,我假设它的一个问题,在比较中cpsc==math==,我能做些什么,使这项工作?任何和所有的帮助将不胜感激.

aIK*_*Kid 5

对不起,我笑了XD

开玩笑,但是..哈哈哈.哦抱歉.让我们谈谈这一点.

为什么不提供所需的输出?

你的if语句有一点问题.尝试在你的interpeter中测试这个:)

a = 233
if a == (217 or 219 or 233):
    print (True)
else:
    print (False)
Run Code Online (Sandbox Code Playgroud)

这将打印False.你知道为什么吗?

实际上,or在你的情况下,使用(217 or 219 or 233)是有点偏.(你可以尝试评估(217 or 219 or 233)).在这里,您实际上正在执行逻辑比较,使用or作为运算符(单击链接,它在C中,但它应该很容易理解).

要解决这个问题

您可以使用in运算符,将"所需"值设为列表:

if a in [217, 219, 233] and math in [217, 251]:
    #do something
Run Code Online (Sandbox Code Playgroud)

编辑:)

啊,是的 我忘了提到上面的代码还不行.你又错过了一件事.

那是什么?这是事实,input总是给你一个字符串.所以,如果a"217"它的价值,它仍然是行不通的,因为217(整数)不等于"217"(字符串).

要解决此问题,请将输入转换为带有int()函数的整数.

cpsc = int(input("Which cpsc course have you taken (only pick one): "))
math = int(input("which math course have you taken (only pick one): "))
Run Code Online (Sandbox Code Playgroud)

这就是全部..希望这会有所帮助!

  • 很好 - 我们都是新的一次.:) (2认同)