Python 3.x Python和/或语句?
一年级理工科学生:p 我不明白为什么这段代码没有像我预期的那样工作(while循环只是为了方便我检查用例):Python 3.x Python和/或语句?,python-3.x,Python 3.x,一年级理工科学生:p 我不明白为什么这段代码没有像我预期的那样工作(while循环只是为了方便我检查用例): 只有在第一次输入时输入“CPSC 219”,第二次输入时输入“MATH 271”,才能打印“满足先决条件”。解决此问题的一种方法是使用中的: if cpscCourseTaken in ("CPSC 219", "CPSC 233", "CPSC 235")\ and mathCourseTaken in ("MATH 271", "MATH 273"): 发布的代码首先计算“C
只有在第一次输入时输入“CPSC 219”,第二次输入时输入“MATH 271”,才能打印“满足先决条件”。解决此问题的一种方法是使用
中的:
if cpscCourseTaken in ("CPSC 219", "CPSC 233", "CPSC 235")\
and mathCourseTaken in ("MATH 271", "MATH 273"):
发布的代码首先计算“CPSC 219”或“CPSC 233”或“CPSC 235”
,根据Python的规则,这些值最终只是“CPSC 235”
,然后将单个值与CPSCCourseStake
进行比较
中的操作符检查左侧的项是否包含在右侧的集合中(在本例中,()
表示右侧是元组)。解决此问题的一种方法是使用中的:
if cpscCourseTaken in ("CPSC 219", "CPSC 233", "CPSC 235")\
and mathCourseTaken in ("MATH 271", "MATH 273"):
发布的代码首先计算“CPSC 219”或“CPSC 233”或“CPSC 235”
,根据Python的规则,这些值最终只是“CPSC 235”
,然后将单个值与CPSCCourseStake
进行比较
操作符中的检查左侧的项是否包含在右侧的集合中(在本例中,()
指示右侧是元组)。要给您多一点灵活性,请尝试正则表达式:
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)):
为了给您多一点灵活性,请尝试正则表达式:
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)):
如果你试着一次又一次地减少这个例子,直到奇怪的行为消失,你可以亲眼看到。最后,你会打印出“CPSC 233”或“CPSC 235”,看看发生了什么。这个策略很有帮助。如果你试图减少和减少这个例子,直到奇怪的行为消失,你可以亲眼看到。最后,你会打印出“CPSC 233”或“CPSC 235”,看看发生了什么。这个策略很有帮助。如果你确实使用正则表达式,那么锚定开始和结束是值得的,这样它就不会无意中匹配像SMATH 2712
这样的东西。如果你确实使用正则表达式,那么锚定开始和结束是值得的,这样它就不会无意中匹配像SMATH 2712
这样的东西。