2015-03-24 7 views
0
def choosing_room(): 
    print "Welcome! You now must choose!" 
    answer = raw_input("Type a or b and hit Enter") 
    if answer == 'a' or 'A': 
     print "You chose 'a'!" 
    elif answer == 'b' or 'B': 
     print "You chose 'b'!" 
    else: 
     print "That is incorrect, please try again" 
     choosing_room() 

choosing_room() 

Это мой код. Это очень просто, но по какой-то причине он постоянно возвращается и сообщения об ошибке reference error: 'prompt' is undefinedСообщение об ошибке для python

+1

ПОЧЕМУ ВЫ СМОТРИТЕ ?! И можете ли вы предоставить полную трассу? – jonrsharpe

+0

1. Ваше сообщение об ошибке не соответствует коду. 2. Сравнение 'reply == 'a' или 'A'' должно быть' answer ==' a 'или answer ==' A'' –

ответ

0

Как @Bhargav Рао отметил, что ваш код не соответствует вашей ошибке, при запуске вы получите выход a независимо от того, вы входите.

Это потому, что if answer == 'a' or 'A': то же самое, как говорят:

if answer == 'a': ИЛИ if 'A': < - это всегда верно

Чтобы исправить это, вы можете использовать условие in:

def choosing_room(): 
    print "Welcome! You now must choose!" 
    answer = raw_input("Type a or b and hit Enter: ") 
    if answer in ['a','A']: 
     print "You chose 'a'!" 
    elif answer in ['b','B']: 
     print "You chose 'b'!" 
    else: 
     print "That is incorrect, please try again" 
     choosing_room() 

choosing_room() 
0

Это вероятно, не решит проблему, с которой вы столкнулись (хотя код работал для меня в оболочке iPython), есть проблема с вашими операциями if/else. СООБЩЕНИЕ:

if answer == 'a' or 'A': 
     print "You chose 'a'!" 

всегда будет печатать «Вы выбрали« a »! независимо от буквы, которую вы вводите по запросу. В python выражение or, которое вы используете, задает следующий вопрос: соответствует ли ответ «a» OR логическим значением «A» True? То, что вы хотите спросить, таково: соответствует ли ответ «a» OR, соответствует ли ответ «A»? Это наиболее кратко представлено через:

if answer.lower() == 'a': 
    print "You chose 'a'!" 

Это должно решить хотя бы одну проблему, которая возникает у этого кода.

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