第一年Comp Sci学生在这里:P
我很困惑为什么这段代码不像我预期的那样工作(while循环就在那里,我可以轻松检查案例):
i = 0
while i == 0:
cpscCourseTaken = input("What Computer course have you taken: ")
mathCourseTaken = input("What Math course have you taken: ")
if cpscCourseTaken == ("CPSC 219" or "CPSC 233" or "CPSC 235")\
and mathCourseTaken == ("MATH 271" or "MATH 273"):
print("Prerequisites met\n")
else:
print("Prerequisites not met\n")
如果您为第一个输入输入“CPSC 219”而第二个输入为“MATH 271”,则仅打印“满足条件”。
答案 0 :(得分:5)
解决此问题的一种方法是使用in
:
if cpscCourseTaken in ("CPSC 219", "CPSC 233", "CPSC 235")\
and mathCourseTaken in ("MATH 271", "MATH 273"):
首先发布的代码评估"CPSC 219" or "CPSC 233" or "CPSC 235"
,根据Python的规则最终只是"CPSC 235"
,然后将该单个值与cpscCourseTaken
进行比较。
in
运算符检查左侧的项目是否包含在右侧的集合中(在这种情况下,( )
表示右侧是元组)。
答案 1 :(得分:0)
为了给你一点灵活性,试试正则表达式:
if (re.match('CPSC (219|233|235)', cpscCourseTaken) and\
re.match('MATH (271|273)', mathCourseTaken)):
或允许空格的一些模糊
if (re.search('CPSC\s+(219|233|235)', cpscCourseTaken) and\
re.search('MATH\s+(271|273)', mathCourseTaken)):