У меня есть два раздела кода Python - один работает, а другой - с ошибкой. Какое правило делает это в этом случае?Почему этот кусок кода возникает с ошибкой, а другой нет?
Вот кусок кода, который получил ошибку, наряду с сообщением об ошибке:
Код:
elif door == "2":
print "You stare into the endless abyss at Cthulhu's retina."
print "1. blueberries."
print "2. Yellow jacket clothespins."
print "3. Understanding revolvers yelling melodies."
insanity = raw_input("> ")
if insanity == "1" or insanity == "2":
print "Your body survives powered by a mind of jello. Good job!"
print "Now what will you do with the jello?"
print "1. Eat it."
print "2. Take it out and load it in a gun."
print "3 Nothing."
jello = raw_input("> ")
if jello == "1" or jello == "2":
print "Your mind is powered by it remember? Now you are dead!"
elif jello == "3":
print "Smart move. You will survive."
else:
print "Do something!"
else:
print "The insanity rots your eyes into a pool of muck. Good job!"
Я получил сообщение об ошибке в строке:
File "ex31.py", line 29
print "Now what will you do with the jello?"
^
IndentationError: unindent does not match any outer indentation level
НО когда мой код выглядит следующим образом:
elif door == "2":
print "You stare into the endless abyss at Cthulhu's retina."
print "1. blueberries."
print "2. Yellow jacket clothespins."
print "3. Understanding revolvers yelling melodies."
insanity = raw_input("> ")
if insanity == "1" or insanity == "2":
print "Your body survives powered by a mind of jello. Good job!"
print "Now what will you do with the jello?"
print "1. Eat it."
print "2. Take it out and load it in a gun."
print "3 Nothing."
jello = raw_input("> ")
if jello == "1" or jello == "2":
print "Your mind is powered by it remember? Now you are dead!"
elif jello == "3":
print "Smart move. You will survive."
else:
print "Do something!"
else:
print "The insanity rots your eyes into a pool of muck. Good job!"
У меня нет сообщения об ошибке.
В основном мой вопрос - почему я не получаю сообщение об ошибке, если я отступа строки
print "Now what will you do with the jello?"
... и остальную часть блока кода ниже него.
Но я получаю код ошибки, если оставляю его с тем же отступом, что и линия над ним?
Означает ли это, что строка печати после оператора if может содержать только одну строку, при этом никакие другие строки печати не могут быть связаны с выходом инструкции if над первой линией печати этого блока?
Спасибо.
Если ваш код на самом деле выглядел так, * как * примеры будут повышение SyntaxErrors на второй линии. Так как это, по-видимому, не так, вы должны внимательно изучить свой код, чтобы отредактировать свой пост, чтобы то, что вы разместили *, точно соответствует вашему действительному коду. Особенно, когда вы задаете синтаксические вопросы, внимание к деталям имеет первостепенное значение. Я ожидаю, что ваша фактическая проблема заключается в том, что вы смешиваете вкладки и пробелы, как предлагает Джон Кугельман в своем ответе. –