Зарегистрируйтесь, чтобы продолжить обучение

Условная конструкция (if) Основы Python

Условная конструкция if

Логические выражения позволяют проверять разные условия. Но сами по себе они ничего не делают — только возвращают True или False. Чтобы программа могла выполнять разные действия в зависимости от результата, в Python есть специальная конструкция if.

if 5 > 3:
    print("Yes, it is true")

Здесь строка "Yes, it is true" напечатается, потому что условие 5 > 3 истинно.

Отступы в блоках

После слова if пишется условие, затем ставится двоеточие, и начинается блок кода с отступом. Все строки с одинаковым отступом входят в один блок:

if 10 == 10:
    print("First")
    print("Second")

print("Goodbye!")

Здесь напечатаются "First" и "Second", потому что условие выполнилось. А "Goodbye!" напечатается в любом случае, так как она уже за пределами блока.

Использование if внутри функции

Рассмотрим функцию, которая определяет тип переданного предложения. Если оно оканчивается на знак вопроса, функция вернёт "question". В противном случае — "normal".

def get_type_of_sentence(sentence: str) -> str:
    last_char = sentence[-1]
    if last_char == '?':
        return 'question'
    return 'normal'

print(get_type_of_sentence('Hodor'))   # => normal
print(get_type_of_sentence('Hodor?'))  # => question

Здесь используется сразу два return. Работа функции устроена так:

  • если условие внутри if выполняется, срабатывает return 'question' и функция завершается;
  • если условие не выполняется, управление переходит на следующую строку — return 'normal'.

Таким образом, у функции есть несколько возможных точек выхода. Это частая практика: в зависимости от условий функция может завершаться по-разному.

Несмотря на то что функция get_type_of_sentence использует if, она не является предикатом — она возвращает строки. А вот пример предиката: функция, которая проверяет, достаточно ли денег для покупки. Она возвращает логическое значение в зависимости от условия.

def has_enough_money(balance: int, price: int) -> bool:
    if balance >= price:
        return True
    return False

print(has_enough_money(100, 50))   # => True
print(has_enough_money(30, 50))    # => False

Здесь используется if, и результатом работы функции всегда будет True или False.

if и логические выражения

Функцию has_enough_money мы написали через if. Но в таком виде она могла бы обойтись и без него, потому что результат сравнения сам по себе уже является логическим выражением.

def has_enough_money(balance: int, price: int) -> bool:
    return balance >= price

В простых случаях лучше сразу возвращать такое выражение. if нужен там, где внутри блока выполняются дополнительные действия, а не только возврат результата. Чем более сложные программы мы будем писать, тем чаще такие ситуации начнут встречаться.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff