Если я правильно понимаю, у вас есть что-то вроде следующего:
while variable != 'quit' or 'Quit' or 'q' or 'Q':
# do stuff
variable = input("")
(Кстати - добро пожаловать в Stack Overflow! Как уже упоминал другой пользователь в комментарии - пожалуйста, предоставьте кодпример: это поможет потенциальным ответчикам на самом деле узнать, что идет не так и что вы пытаетесь сделать.)
Причина, по которой он никогда не ломается, заключается в том, что интерпретатор Python фактически видит:
while (variable != 'quit') or ('Quit') or ('q') or ('Q'):
# do stuff
variable = input("")
В Python непустые строки будут иметь значение true - если вы попробуете bool('q')
в интерпретаторе Python, вы получите True
. Это означает, что интерпретатор работает:
while (variable != 'quit') or True or True or True:
# do stuff
variable = input("")
, который, очевидно, никогда не ломается. Что вам нужно сделать, это проверить все варианты;У «Доброго незнакомца» есть одно решение, но более явно, вы можете попробовать
while variable not in ('quit', 'Quit', 'q', 'Q'):