2016-07-05 2 views
-3

Я очень новичок в Python и готовлюсь к его запуску как GCSE. Я пытался сделать вопрос о столице Франции, заданный в школе, с различными ответами на некоторые ответы, но он не работает. Ошибка синтаксиса «unindent не соответствует внешнему уровню отступа» появляется после ответа, когда ответы неверны (например, после печати («Right Country, Wrong City. Try again.»). Может ли кто-нибудь помочь? Спасибо.если/elif вопросы не работают?

print('What is the capital of France?') 
answer==input('Enter your answer:') 
if answer == 'Paris': 
    print('Well Done! That\'s Correct.') 
elif answer == 'Lyon': 
    print('Right country, Wrong city. Try again.') 
    input('Enter your answer:') 
elif answer == 'F': 
    print('Terrible joke and the wrong answer. Try again.') 
    input('Enter your answer:') 
else: 
    print('Sorry, that\'s incorrect. Try again.') 
    input('Enter your answer:') 
+3

Элиф должна быть на том же уровне, что если –

+3

'=' для рисовки, '' == для comparaison. change 'answer == input ('Введите ответ:')' to 'answer = input ('Введите ответ:')' – Hearner

+1

Кроме того, если ваш ответ неверен, вы, вероятно, захотите вернуться к второй строке вместо того, чтобы использовать другой оператор input(). Для этого подходит цикл while. – Heinrich

ответ

1

в дополнение к предыдущим ответам, я просто хотел бы отметить, что лучше использовать время цикла и присвойте значение «ответить» в цикле while. Таким образом, вы также можете вставить оператор «break», который завершит работу программы после того, как вы назовете слово «exit» или дадите правильный ответ. Вот код:

print('What is the capital of France?') 
while True: 
    answer=input('Enter your answer, or type "exit" to close the program: ') 
    if answer=='exit': 
     print('Program terminated') 
     break 
    elif answer == 'Paris': 
     print('Well Done! That\'s Correct.') 
     break 
    elif answer == 'Lyon': 
     print('Right country, Wrong city. Try again.') 
    elif answer == 'F': 
     print('Terrible joke and the wrong answer. Try again.') 
    else: 
     print('Sorry, that\'s incorrect. Try again.') 
3

Ваш отступы был выключен в случае/Элиф/еще блок

Если вы присваиваете переменной, она должна быть одна = не ==

Если вы хотите, чтобы запросить правильный ответ снова, вам необходимо переназначить переменную answer (answer = input(....))

Также вы можете запустить while answer == 'Paris' или что-то подобное, так, что, как она непрерывно запрашивает до ответа значение, которое вы хотите быть

print('What is the capital of France?') 
answer = input('Enter your answer:') 
if answer == 'Paris': 
    print('Well Done! That\'s Correct.') 
elif answer == 'Lyon': 
    print('Right country, Wrong city. Try again.') 
    input('Enter your answer:') 
elif answer == 'F': 
    print('Terrible joke and the wrong answer. Try again.') 
    input('Enter your answer:') 
else: 
    print('Sorry, that\'s incorrect. Try again.') 
    input('Enter your answer:') 
-1

Вы не должны использовать вход(), но вместо того, чтобы использовать сырой ввод().

+1

Это разница Python3 v Python2 ... если OP использует Python3, этот ответ недействителен – heinst

0

Сначала, когда вы хотите что-то сохранить в переменной, вы просто используете один = не == их

На втором вам нужно иметь все Элиф и если на одном месте не использовать табуляторы питон очень чувствителен на это

И для ответа вам нужно сделать цикл, может быть, в то время повторять, пока они не писать правильный вопрос

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