功能选项完成后,即使更新与要求的字符串之一相同,while循环仍然继续。满足更新条件后如何停止while循环
while update.lower() != "tests" or "lessons" or "adjust":
update = input("Do you want to update content from 'lessons' or 'tests'. Or do you want to 'adjust' what you aren't confident with. respond with 'adjust' 'lesson' or 'tests'").lower()
if update.lower() == "tests" or "lessons" or "adjust":
options()
答案 0 :(得分:4)
您需要
while update.lower() not in ["tests", "lessons", "adjust"]
您写的内容被解析为
{update.lower() != "tests"} OR {"lessons"} OR {"adjust"}
(方括号位于其中,以显示语言如何对术语进行分组)
由非空字符串组成的条件在python中始终为true,因此“课程”部分将始终为true,而while
循环将永远为true。
答案 1 :(得分:2)
这是因为代码中的ctrl + .
不能像您认为的那样起作用,因此在您的示例中,它们被解释为不同的条件or
,update.lower() != "tests"
和lessons
因此最后两个始终被视为adjust
,因此此循环永远不会结束。相反,您应该这样做:
True