2016-02-22 3 views
1

У меня есть переменная player_answer, я хочу разбить цикл while, когда player_answer равен «да» или «да».Как добавить дополнительные условия в цикл while?

Код:

while player_answer != "yes" ((OR)) "yea": 

      *CODE BLOCK* 
+1

'в то время как player_answer не в [«да»,«да»]:' –

+1

Возможный дубликат [комплекса, если оператор в питоне] (http://stackoverflow.com/questions/2493404/complex-if-statement-in-python) – Prune

+0

@prune должно быть в порядке, поскольку в этом сочетаются разные ответы –

ответ

2

Если вы хотите использовать два пункт вы можете использовать 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> 
+0

второй пример кода не работал для меня, я попытался использовать его, прежде чем спрашивать , я попытался использовать простую логику. Но 1-й и 3-й примеры работали безупречно. спасибо – nizhabib

+0

, второй пример был призван подчеркнуть НЕПРАВИЛЬНЫЙ способ сделать это. Я сделаю это более ясным. –

Смежные вопросы