Когда я запускаю следующий код, я получаю сообщение об ошибке: "IndentationError: unident не соответствует внешнему уровню отступа".
Что я делаю неправильно? Я включил свой код ниже для справки:
file=open('csquetionseasy.txt','r')
print(file.read(432))
answersinputeasy=input('enter the letter responding to the correct answer for all 3 questions e.g. BBB')
if answersinputeasy==('BAA'):
print('you got 3/3!')
else:
if answersinputeasy==('BAB'):
print('2/3!')
else:
if answersinputeasy==('BBB'):
print('1/3!')
else:
if answersinputeasy==('ABB'):
print('0/3!')
else:
if answersinputeasy==('AAB'):
print('1/3!')
else:
if answersinputeasy==('AAA'):
print('2/3!')
else:
if answersinputeasy==('ABA'):
print('1/3!')
Используйте elif
а не else
. Вам нужно else
выражение, чтобы что-то сделать, if
утверждения if
и elif
оцениваются как false.
if answersinputeasy==('BAA'):
print('you got 3/3!')
elif answersinputeasy==('BAB'):
print('2/3!')
elif answersinputeasy==('BBB'):
print('1/3!')
elif answersinputeasy==('ABB'):
print('1/3!')
elif answersinputeasy==('AAA'):
print('2/3!')
elif answersinputeasy==('ABA'):
print('1/3!')
else:
print('Invalid Input')
Кроме того, если вы хотите указать блок кода, вы должны отложить каждую строку блока на ту же сумму, что обычно составляет четыре пробела.
Причина, по которой вы получаете сообщение об ошибке "IndentationError: unident does not match any other indentation level"
заключается в том, что вы объединяете вкладки вместе, чтобы создать вложенный логический оператор (в псевдокоде):
if <condition>:
#then do something
else if <condition>:
#then do something else
else if <condition>
#then do something further else
Это не то, как Python любит видеть синтаксис в логическом блоке. Кроме того, следующая ошибка, с которой вы столкнетесь, будет включать использование вложенных операторов if внутри предложений else.
Чтобы запустить оператор else if
в Python, вы захотите использовать синтаксис elif:
за ним следует строка с отступом с кодом, который вы хотите выполнить, если это условие выполнено (в псевдокоде):
if <condition>:
#then do something
elif <condition>:
#then do something else
elif <condition>:
#then do something further else
Еще один вызов в качестве наилучшей практики заключается в том, что вы должны включить явное предложение else
в условный блок с кучей операторов elif
если вы не собираетесь делать какую-либо дополнительную проверку на строку, которую вы получаете от пользователя. Представьте, что пользователь прошел в XYZ
. Они не будут соответствовать ни одному из условий, которые вы определили, и из-за этого код будет просто продолжаться из нижней части этого логического блока (что может или не может быть хорошо). В следующем коде я добавил пример того, как может выглядеть явное предложение else
, но вам решать, что может иметь смысл для вашего приложения:
file=open('csquetionseasy.txt','r')
print(file.read(432))
answersinputeasy=input('enter the letter responding to the correct answer for all 3 questions e.g. BBB')
if answersinputeasy==('BAA'):
# Code to be executed following an if-statement must be indented by 4 spaces:
print('you got 3/3!')
elif answersinputeasy==('BAB'):
# Code to be executed following an elif-statment (else-if) must be indented by 4 spaces:
print('2/3!')
elif answersinputeasy==('BBB'):
print('1/3!')
elif answersinputeasy==('ABB'):
print('0/3!')
elif answersinputeasy==('AAB'):
print('1/3!')
elif answersinputeasy==('AAA'):
print('2/3!')
elif answersinputeasy==('ABA'):
print('1/3!')
# Else clause would provide a default condition that executes if none of the prior cases are met.
else:
# Code following an else statment must be indented by 4 spaces:
#Example of a default Else-block entry:
print('Wasn\'t able to parase your entry into a valid answer!')
{}