if в Python: Объяснение условных операторов

Узнайте, как использовать операторы if в Python. Полное руководство с синтаксисом, примерами и лучшими практиками для условного программирования. Включает интерактивные примеры кода.

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

Базовая синтаксис оператора if

Синтаксис оператора if в Python прост:

if condition:
    # code to execute if condition is True
    statement

condition - это логическое выражение (например, number > 5 или name == "Alice"), которое оценивается как True или False. Если условие оценивается как True, выполняется блок кода с отступом; если False, Python полностью пропускает блок.

Пример 1: Простой оператор if

number = 10

if number > 0:
    print("The number is positive")
Вывод:
The number is positive

Пример 2: Оператор if с ложным условием

number = -5

if number > 0:
    print("The number is positive")

print("This line always executes")
Вывод:
This line always executes

Во втором примере, поскольку -5 не больше 0, оператор print внутри блока if пропускается.

Отступы в операторах if

Python полагается на отступы (пробелы в начале строки) для определения области видимости блоков кода, в отличие от других языков, использующих фигурные скобки. Все операторы внутри блока if должны иметь одинаковый отступ - обычно 4 пробела.

Правильный отступ:

age = 20

if age >= 18:
    print("You are an adult")
    print("You can vote")
    print("You have full legal rights")

Неправильный отступ (вызовет ошибку):

age = 20

if age >= 18:
print("You are an adult")  # IndentationError

Если вы не используете правильный отступ, Python вызовет IndentationError, потому что не может определить, какие операторы принадлежат блоку if.

Операторы сравнения с операторами if

Python поддерживает стандартные операторы сравнения, которые возвращают логические значения для использования в операторах if:

  • == - Равно
  • != - Не равно
  • < - Меньше
  • <= - Меньше или равно
  • > - Больше
  • >= - Больше или равно

Пример: Использование различных операторов сравнения

a = 33
b = 200

if b > a:
    print("b is greater than a")

if a != b:
    print("a and b are not equal")

if a <= 50:
    print("a is 50 or less")
Вывод:
b is greater than a
a and b are not equal
a is 50 or less

Несколько операторов в блоке if

Вы можете включить несколько операторов внутри блока if, пока все они имеют одинаковый уровень отступа.

Пример:

score = 95

if score >= 90:
    print("Excellent work!")
    print("You earned an A grade")
    grade = "A"
    print(f"Your grade is: {grade}")
Вывод:
Excellent work!
You earned an A grade
Your grade is: A

Логические переменные в операторах if

Логические переменные могут использоваться напрямую в операторах if без операторов сравнения.

Пример:

is_logged_in = True

if is_logged_in:
    print("Welcome back!")

is_raining = False

if is_raining:
    print("Take an umbrella")
else:
    print("Enjoy the sunshine")
Вывод:
Welcome back!
Enjoy the sunshine

Python рассматривает определённые значения как False в логическом контексте: 0, пустые строки "", None и пустые коллекции, такие как [] или {}. Все остальные значения рассматриваются как True.

Truthy и Falsy значения

Python может оценивать многие типы значений как True или False в условных операторах:

Falsy значения (оцениваются как False):

  • 0 (ноль)
  • "" (пустая строка)
  • None
  • [] (пустой список)
  • (пустой словарь)
  • () (пустой кортеж)

Truthy значения (оцениваются как True):

  • Любое ненулевое число (положительное или отрицательное)
  • Любая непустая строка
  • Непустые коллекции

Пример:

name = ""

if name:
    print(f"Hello, {name}")
else:
    print("Name is empty")

items = [1, 2, 3]

if items:
    print("List has items")
Вывод:
Name is empty
List has items

Однострочный оператор if

Для простых условий вы можете написать оператор if в одной строке:

Стандартный формат:

temperature = 30

if temperature > 25:
    print("It's hot outside")

Компактный формат:

temperature = 30

if temperature > 25: print("It's hot outside")

Обе версии дают одинаковый результат, но однострочный формат более лаконичен для простых операторов.

Распространённые случаи использования

Случай использования 1: Проверка пользовательского ввода

age = int(input("Enter your age: "))

if age >= 18:
    print("You are eligible to vote")

Случай использования 2: Проверка чётных или нечётных чисел

number = 7

if number % 2 == 0:
    print(f"{number} is even")

Случай использования 3: Проверка пароля

password = "secret123"

if len(password) >= 8:
    print("Password is strong enough")

Случай использования 4: Проверка содержимого списка

shopping_cart = ["apple", "banana", "milk"]

if "milk" in shopping_cart:
    print("Milk is in your cart")

Распространённые ошибки, которых следует избегать

Ошибка 1: Забыть двоеточие

# Wrong
if number > 0
    print("Positive")

# Correct
if number > 0:
    print("Positive")

Ошибка 2: Использование = вместо ==

x = 5

# Wrong (assignment, not comparison)
if x = 5:
    print("x is 5")

# Correct
if x == 5:
    print("x is 5")

Ошибка 3: Несогласованные отступы

# Wrong
if True:
    print("Line 1")
      print("Line 2")  # Different indentation level

# Correct
if True:
    print("Line 1")
    print("Line 2")

Примеры для практики

Пример 1: Проверка температуры

temperature = 22

if temperature > 30:
    print("It's very hot")

if temperature > 20:
    print("It's warm")

if temperature < 10:
    print("It's cold")
Вывод:
It's warm

Пример 2: Назначение оценки

marks = 85

if marks >= 90:
    print("Grade: A")

if marks >= 80 and marks < 90:
    print("Grade: B")

if marks >= 70 and marks < 80:
    print("Grade: C")
Вывод:
Grade: B

Пример 3: Проверка членства

username = "admin"

if username == "admin":
    print("Access granted to admin panel")
    print("Loading admin dashboard...")
Вывод:
Access granted to admin panel
Loading admin dashboard...

Попробуйте сами

Практикуйте то, что вы изучили, изменяя код ниже. Попробуйте изменить значения и условия, чтобы увидеть разные результаты!

Готово
main.py
Консоль вывода 0 ms
// Нажмите "Запустить код" чтобы увидеть результаты

Связанные темы

Часто задаваемые вопросы

В чём разница между if и if else в Python?

Оператор if выполняет код только когда условие равно True. Оператор if else предоставляет альтернативный блок кода, который выполняется, когда условие равно False.

Нужно ли использовать скобки вокруг условия в операторах if в Python?

Нет, скобки необязательны в Python. И if (x > 5):, и if x > 5: действительны, но последний более Pythonic.

Могу ли я использовать несколько условий в одном операторе if?

Да, вы можете использовать логические операторы, такие как and, or и not, для объединения нескольких условий: if age >= 18 and has_license:.

Что произойдёт, если я не сделаю отступ кода после оператора if?

Python вызовет IndentationError, потому что требует отступ для определения блоков кода.