В чём отличие между `if` и `elif`?

if начинает новый блок условий, который всегда проверяется. elif (else if) используется после if, проверяется только в том случае, если предыдущее условие if было ложным. Таким образом, elif - это способ добавить дополнительные условия в цепочку, избегая множественных вложенных if.

В Python, `if` и `elif` используются для создания условных конструкций, но между ними есть ключевые различия в их роли и функционировании в логике программы.

`if` (если) - это начальное условие в условном блоке. Оно оценивается всегда, когда интерпретатор достигает этой части кода. Если условие, связанное с `if`, истинно (True), то выполняется блок кода, связанный с этим `if`. Если условие ложно (False), то блок кода игнорируется и интерпретатор переходит к следующей части программы (либо к следующему `elif` или `else`, если они есть).

`elif` (иначе если) - это сокращение от "else if". `elif` используется для проверки дополнительных условий после того, как предыдущее условие `if` (или предыдущее `elif`) оказалось ложным. `elif` оценивается только в том случае, если все предыдущие `if` и `elif` условия были ложными. Если условие, связанное с `elif`, истинно, то выполняется соответствующий блок кода, и оставшиеся `elif` и `else` блоки (если они есть) игнорируются. Вы можете иметь сколько угодно `elif` блоков после блока `if`.

Ключевые отличия:

  • Позиция: `if` всегда является первым условием в условной конструкции, а `elif` всегда следует за `if` или другим `elif`.
  • Оценка: `if` оценивается всегда, когда до него доходит интерпретатор. `elif` оценивается только если предыдущие `if` и `elif` были ложными.
  • Количество: В условном блоке может быть только один `if`, но может быть много `elif` (или вообще ни одного).
  • Взаимоисключение: Если условие `if` истинно, то никакие `elif` блоки не будут оценены. Если условие `elif` истинно, то никакие следующие `elif` или `else` блоки не будут оценены.

Пример:


    x = 10

    if x > 10:
        print("x больше 10")
    elif x == 10:
        print("x равно 10")
    else:
        print("x меньше 10")
  

В этом примере, сначала оценивается `x > 10`. Если это ложно, то оценивается `x == 10`. Если и это ложно, то выполняется блок `else`.

0