2016-11-04 2 views
1

Я изучаю Python, пытаясь составить код простой приключенческой игры. Я создал цикл while, чтобы получить выбор от пользователя, и я явно не делаю этого эффективным образом. Я создал цикл while с несколькими «или» условиями для продолжения цикла, пока пользователь не предоставит одно из четырех действительных направлений в качестве входных данных. К сожалению, эта строка расширяет линию до 80 символов на вкладке. Каков наилучший способ либо разбить эту строку на две строки, чтобы не получить синтаксическую ошибку или написать такой тип цикла более эффективно?Правильный синтаксис python цикла while с несколькими или условиями

while direction != "N" or direction != "S" or direction != "E" or direction != "W": 
    if direction == "N": 
     print "You went N to the Mountain Pass" 
     return 'mountain' 

    elif direction == "S": 
     print "You went S to the Shire" 
     return 'shire' 

    elif direction == ... 

Когда я пытаюсь разбить первую строку на две части, независимо от того, где я нарушу это я получаю ошибку синтаксиса ...

File "sct_game1.py", line 71 
    while direction != "N" or direction != "S" or 
              ^
SyntaxError: invalid syntax 

Я открыт для предложений о том, как сломать линии, или даже лучше, написав этот цикл более эффективно.

Спасибо.

+0

Вы можете использовать '' \\ в конце первой линии, чтобы сделать второй линии по-прежнему от первого. Сказав это, ваше время всегда будет Истиной. –

+0

Проверьте условия 'while'. Если первая ложная, цикл будет продолжен. Тем не менее, я не понимаю, что должно делать «время». Вы уверены, что не хотите проверять полную противоположность? – usr2564301

+0

@MorganThrapp благодарит за это. Должен был знать это, поскольку я изучил его, но явно еще не сцементировал в лапше. – sctoy

ответ

-2

Попробуйте это:

while (direction != "N" or 
     direction != "S" or 
     direction != "E" or 
     direction != "W"): 
    # ... your code ... 

Или лучше:

while direction not in ("N", "S", "E", "W"): 
+1

'direction not in (" N "," S "," E "," W ")' делает что-то совершенно другое. (Вероятно, это то, что пытается сделать ОП, но не то, что они делают.) –

+0

А. Джесси. Первый вариант работал, но второй вариант не дал и дал мне ошибку атрибута. – sctoy

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