Python

Зачем нужен elif в python

если есть if
.)
.......... ))))))))))))
1 036
Например, тебе нужно вычислить знак числа: -1 для отрицательных, +1 для положительных, 0 для нуля. Ты можешь написать без elif:
 if a < 0:
sign = -1
else:
if a > 0:
sign = 1
else:
sign = 0
А можешь написать:
 if a < 0: 
sign = -1
elif a > 0:
sign = 1
else:
sign = 0
elif - это заменитель else if. Вариант с elif короче, лучше читается и не создаёт лишних отступов.
Саша Наталевич
Саша Наталевич
67 877
Лучший ответ
Для множественного выбора: проверки диапазонов, типов и значений:

 if condition1: 
# Действия, выполняемые при выполнении condition1
elif condition2:
# Действия, выполняемые при выполнении condition2
elif condition3:
# Действия, выполняемые при выполнении condition3
else:
# Действия, выполняемые, если ни одно из условий не выполнено
Ну не будешь же ты писать обратное условие в каждый if...
типа вместо
 if x % 8 == 0:
...
elif x % 4 == 0:
...
elif x % 2 == 0:
...
ты собираешься писать
 if x % 8 == 0: 
...
if x % 8 != 0 and x % 4 == 0:
...
if x % 8 != 0 and x % 4 != 0 and x % 2 == 0:
...
?

Явно же намного удобнее первый вариант
Санёк Черченко это ещё дополнительное время выполнения кода
Потому что elif уже включает в себя результат проверки всех if выше = False.
Например, это полезно при сортировке
На случай, если опций больше чем две.
В сишарпе к примеру есть case.
Саша Наталевич А в Python уже более полутора лет есть match: https://habr.com/ru/articles/585216/
если if не выполнился, выполняется проверка дальше elif. Если будет 2 if и 2 условия станут true то выполнятся два if. Если будет if elif, то если они будут оба true, то выполнится только первый if