У меня есть переменная player_answer
, я хочу разбить цикл while, когда player_answer
равен «да» или «да».Как добавить дополнительные условия в цикл while?
Код:
while player_answer != "yes" ((OR)) "yea":
*CODE BLOCK*
У меня есть переменная player_answer
, я хочу разбить цикл while, когда player_answer
равен «да» или «да».Как добавить дополнительные условия в цикл while?
Код:
while player_answer != "yes" ((OR)) "yea":
*CODE BLOCK*
Если вы хотите использовать два пункт вы можете использовать and
/or
для питона сложных логических выражений.
while not (player_answer == "yes" or player_answer == "yea"):
<INSERT CODE>
Однако, будьте осторожны, так как это легко запутаться, что, как отрицанием с составными пунктами являются не так просто, как описано выше. В частности, соединение я написал это НЕ эквивалентно
# DON'T DO THIS; THIS ILLUSTRATES A COMMON LOGICAL MISTAKE
while player_answer != "yes" or player_answer != "yea":
<INSERT CODE>
Для получения дополнительной информации ознакомьтесь с DeMorgan's Laws.
Лучшим решением является один из @DeveloperXY в комментариях:
while player_answer not in ["yes", "yeah"]:
<INSERT CODE>
второй пример кода не работал для меня, я попытался использовать его, прежде чем спрашивать , я попытался использовать простую логику. Но 1-й и 3-й примеры работали безупречно. спасибо – nizhabib
, второй пример был призван подчеркнуть НЕПРАВИЛЬНЫЙ способ сделать это. Я сделаю это более ясным. –
'в то время как player_answer не в [«да»,«да»]:' –
Возможный дубликат [комплекса, если оператор в питоне] (http://stackoverflow.com/questions/2493404/complex-if-statement-in-python) – Prune
@prune должно быть в порядке, поскольку в этом сочетаются разные ответы –