这里的一年级Comp理科学生: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“,为第二个输入输入”math271“,则只会打印”先决条件已满足“。
发布于 2014-10-23 08:02:30
解决这个问题的一种方法是使用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操作符检查左侧的项是否包含在右侧的集合中(在本例中,( )指示右侧是一个元组)。
发布于 2014-10-23 12:54:01
为了给您更多的灵活性,可以尝试regexes:
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)):https://stackoverflow.com/questions/26519265
复制相似问题