2015-11-30 4 views
1

Я довольно новичок в программировании и начал кодировать текстовую игру.Неожиданные ошибки Unindent и Синтаксис

Однако я продолжаю сталкиваться с двумя ошибками; Неожиданная ошибка Unindent и Syntax.

Я использую try, но он говорит мне ошибку синтаксиса на except и если я избавлюсь от всего куска после except тогда дает мне ошибку «Неожиданный Unindent» на следующей строке (после «левой двери»), выделение пробела.

def prompt_chouseroom1(): 
    prompt_2 = raw_input ("You know what to do by now:   ") 
    try: 
     if prompt_2 == ("Look around the room"): 
      print ("You see two doors; one on the left, and one on the right. There is also a dead body in the middle of the room") 
      print promt_chouseroom1() 
     if prompt_2 == ("Go through left door"): 
      left_door() 
     if prompt_2 == ("Go through middle door"): 
      prinnt ("WHAT?! You walked through the wall!") 
      middle_door() 
     if prompt_2 == ("Go through right door"): 
      right_door() 
     if prompt_2 == ("Look under the rug"): 
      print ("Oh my... you... you weren't supposed to find that. Well... looks like you can leave already. You win. Congrats... I guess :(") 
      win_game() 
     else: 
      print ("Try to LOOK AROUNF THE ROOM.... just a hint ;)") 
      print 
      prompt_chouseroom1() 
     except ValueError: 
      print ("Try to LOOK AROUNF THE ROOM.... just a hint ;)") 
      print 
      prompt_chouseroom1() 
def left_door(): 
+1

Посмотрите на отступы 'try'. Посмотрите на отступы 'except'. Что-то не так выглядит с отступом этих строк? – user2357112

ответ

0

Ваша линия поймать исключение должно быть отступом на том же уровне, как ваш попробовать

try: 
    if prompt_2 == ("Look around the room"): 
     print ("You see two doors; one on the left, and one on the right. There is also a dead body in the middle of the room") 
     print promt_chouseroom1() 
    if prompt_2 == ("Go through left door"): 
     left_door() 
    if prompt_2 == ("Go through middle door"): 
     prinnt ("WHAT?! You walked through the wall!") 
     middle_door() 
    if prompt_2 == ("Go through right door"): 
     right_door() 
    if prompt_2 == ("Look under the rug"): 
     print ("Oh my... you... you weren't supposed to find that. Well... looks like you can leave already. You win. Congrats... I guess :(") 
     win_game() 
    else: 
     print ("Try to LOOK AROUND THE ROOM.... just a hint ;)") 
     print 
     prompt_chouseroom1() 
except ValueError: 
    print ("Try to LOOK AROUND THE ROOM.... just a hint ;)") 
    print 
    prompt_chouseroom1() 

Этот пример показывает, что я имею в виду: https://wiki.python.org/moin/HandlingExceptions

0

Вы видите, как try: отступом ? Вы должны соответствовать один и тот же уровень отступа с except: Здесь эти коды фиксировано

def prompt_chouseroom1(): 
prompt_2 = raw_input ("You know what to do by now: ") 
try: 
    if prompt_2 == ("Look around the room"): 
     print ("You see two doors; one on the left, and one on the right. There is also a dead body in the middle of the room") 
     print promt_chouseroom1() 
    if prompt_2 == ("Go through left door"): 
     left_door() 
    if prompt_2 == ("Go through middle door"): 
     print ("WHAT?! You walked through the wall!") 
     middle_door() 
    if prompt_2 == ("Go through right door"): 
     right_door() 
    if prompt_2 == ("Look under the rug"): 
     print ("Oh my... you... you weren't supposed to find that. Well... looks like you can leave already. You win. Congrats... I guess :(") 
     win_game() 
    else: 
     print ("Try to LOOK AROUNF THE ROOM.... just a hint ;)") 
     print 
     prompt_chouseroom1() 
except ValueError: 
     print ("Try to LOOK AROUNF THE ROOM.... just a hint ;)") 
     print 
     prompt_chouseroom1() 
def left_door(): 
    return 

Кроме того, я бы не запустить сценарий с помощью Try и исключением. Я бы использовал функции, а затем вызывал функции.

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

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