Я новый программист на Python, который делает скачок с 2.6.4 до 3.1.1. Все прошло хорошо, пока я не попытался использовать оператор «else if». Интерпретатор выдает мне синтаксическую ошибку после 'if' в 'else if' по причине, которую я не могу понять.
def function(a):
if a == '1':
print ('1a')
else if a == '2'
print ('2a')
else print ('3a')
function(input('input:'))
Я, наверное, упускаю что-то очень простое; Однако я не смог найти ответ самостоятельно.
python
python-3.x
Пол Тернер
источник
источник
Ответы:
В питоне «иначе, если» пишется «элиф».
Кроме того, вам нужно двоеточие после
elif
иelse
.Простой ответ на простой вопрос. У меня была такая же проблема, когда я только начинал (в последние пару недель).
Итак, ваш код должен читать:
источник
elsif
, я думаю, Python должен был быть на один символ более эффективным. «Elif», похоже, возникла из препроцессора C, который использовался#elif
задолго до Python AFAICT. Очевидно, что в этом контексте наличие директивы с одним токеном является ценным, поскольку синтаксический анализ#else if <code>
vs.#else <code that could theoretically even be an if statement>
усложнил бы синтаксис, который должен был быть слишком простым.Вы имеете в виду
elif
?источник
источник
с давних времен правильный синтаксис для
if/else if
в Python естьelif
. Кстати, вы можете использовать словарь, если у вас многоif/else
.egДля msw пример выполнения функций с использованием словаря.
источник
elif
.exec
их объединение . Это хорошая практика? Можете назвать пример?<foo>
являетсяdo_foo
, вы можете даже построить Dict на лету , когда приложение запускается..get
метод, который позволяет вам указать значение по умолчанию. Ваш первый пример может быть записан какprint d.get(a, "3a")
Вот небольшой рефакторинг вашей функции (он не использует «else» или «elif»):
@ ghostdog74: Python 3 требует скобок для «печати».
источник
('1', '2')
, операционная система использует строкиСледует исправить на:
Как вы можете видеть, в противном случае, если должно быть изменено на elif, после '2' должны быть двоеточия, а в противном случае должна быть новая строка после оператора else и закрыть пробел между print и круглыми скобками.
источник