2016-01-23 1 views
0

Я новичок в программировании в целом, и в своем путешествии, чтобы понять это, Python специально, я пытаюсь воссоздать игру Camel. Шаги, которые я выполнил до сих пор, дают мне указание создать цикл while, который будет продолжать цикл при выполнении переменной = False. Внутри цикла мне поручено напечатать несколько вариантов, выбранных буквой, которые в конечном итоге будут делать разные вещи. В настоящее время я пытаюсь выйти из программы, выбрав опцию Q, но я получаю ошибку каждый раз, когда я печатаю Q, а затем введите:Как я могу использовать букву для выбора из списка множественного выбора?

Traceback (most recent call last): 
    File "/home/pi/Desktop/wasteland_Game.py", line 15, in <module> 
    user_Choice = input("You decide to: ") 
    File "<string>", line 1, in <module> 
NameError: name 'Q' is not defined 

Однако, если я типа «Q», включая кавычки, программа завершается , На мой вопрос: как получить только письмо без кавычек, чтобы работать, как письмо с кавычками?

Также здесь я впервые задал вопрос, пожалуйста, извините за любые проблемы с форматированием.

Спасибо заранее,

RavusFlapjack

Python версии 2.7.9

print("Welcome to Wasteland!") 
print("You escaped with a Pristine Deathclaw Egg and need to get to Diamond City!") 
print("The Deathclaws want their egg back and are chasing you down!") 
print("Survive your Wasteland Trek and outrun the Deathclaws!\n") 

done = False 

while not done: 
    print("A. Drink from your trusty canteen.") 
    print("B. Move ahead walking speed.") 
    print("C. Move ahead full spring.") 
    print("D. Stop and rest.") 
    print("E. Check your Pip-Boy for status.") 
    print("Q. Quit") 
    user_Choice = input("You decide to: ") 
    if user_Choice == "Q": 
     print("Nobody likes a quitter!") 
     done = True 

ответ

0

Попробуйте использовать raw_input() вместо input(). Это все равно будет читать строку, и пользователь должен нажать enter.

Согласно Python 2.7 documentation на input():

Эквивалент Eval (raw_input (подсказка)).

Эта функция не вызывает ошибок пользователя. Если вход не является синтаксически действительным, будет увеличен SyntaxError. Другие исключения могут быть подняты, если во время оценки есть ошибка.

Если модуль readline был загружен, то input() будет использовать его для обеспечения подробного редактирования линии и функций истории.

Рассмотрите возможность использования функции raw_input() для общего ввода от пользователей.

Основная идея состоит в том, что input() читает строку, затем оценивает ее (как если бы она была введена из интерактивной оболочки). Он ищет символ (переменную и т. Д.) С именем Q, который не существует, генерируя ошибку. Вам просто нужна сама строка, а не строка.

+0

Благодарим за помощь, которая исправила проблему прямо сейчас! – RavusFlapjack

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