Программирование • 30 января 2025 • 5 мин чтения

Условные операторы в Python: как их использовать

Рассказываем, что такое условные операторы в Python, какими они бывают и в каких случаях применяются. А также приводим примеры их использования.

Что такое условные операторы в Python

Условные операторы в «Питоне» — базовые конструкции, позволяющие выстроить работу различных блоков кода исходя из выполнения или невыполнения определённого условия. Проще говоря, они дают возможность менять поведение программы, написанной на Python, исходя из конкретных значений.

Возьмём для примера задачу, когда надо реализовать проверку того, високосный ли тот или иной год. Вот как будет выглядеть код c использованием условных операторов:

year = int(input('Введите год: '))

if year % 4 != 0:
print('Год не високосный.')

elif year % 100 == 0:
if year % 400 == 0:
print('Год високосный.')
else:
print('Год не високосный.')
else:
print('Год високосный.')

Понять условные операторы и другие конструкции языка «Питон» можно на курсе «Python-разработчик». Он позволит с нуля изучить бэкенд-программирование, научиться работать по фреймворку Django, использовать GitHub, Git, Bash и другие необходимые инструменты, а также выполнить 15 самостоятельных проектов.

Виды условных операторов в Python

Разберёмся, какие условные операторы есть в «Питоне» и каков их синтаксис. В языке используется три основных оператора, которые выполняют разные функции:

  1. if (если) — нужен для проверки условия и выполнения блока кода, если оно истинно.
  2. elif (иначе если) — сокращение от else if, помогает добавить дополнительные условия после if, чтобы избежать повторения кода.
  3. else (иначе) — применяется вместе с if для выполнения определённого блока кода в случае, когда условие неверно.

Условные операторы есть не только в Python, но и в других языках программирования. Однако их синтаксис и функции могут различаться.

Пример использования условных операторов для проверки деления чисел в «Питоне»:

n = int(input())
if n % 2 == 0 and n % 3 == 0:
print("Делится на 6")
elif n % 2 == 0:
print("Делится на 2")
elif n % 3 == 0:
print("Делится на 3")
else:
print("Не делится ни на 2, ни на 3")

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

Операторы сравнения применяются в условных операторах Python для проверки истинности или ложности определённых условий. Например, есть математические операторы:

  • «==» — проверяет, равны ли два значения;
  • «!=» — проверяет неравенство двух значений;
  • «<», «>» — подходит, когда нужно выяснить отношения «меньше» и «больше» между двумя значениями;
  • «<=», «>=» — проверяют, соответственно, меньше или равно и больше или равно ли одно значение другому.

На самом деле условные операторы if и elif способны работать с любым выражением, которое «Питон» может в итоге интерпретировать как истину или ложь. Например, в случае классов за это отвечает функция __bool__.

С условными операторами можно использовать не только математические операторы сравнения, но и другие выражения или результаты работы функций. Для того чтобы можно было записывать сложные условия, в «Питоне» есть возможность применить в if и elif логические операторы:

  • and — может объединить несколько условий, возвращает истину в том случае, когда все условия верны;
  • or — также включает несколько условий, но возвращает истину, когда хотя бы одно из условий верно;
  • not — изменяет значение логического выражения на противоположное — если выражение истинно, оператор сделает его ложным, и наоборот.

К примеру, так в коде можно применять сравнение и логические операторы:

temperature = 30
precipitation = 'rain'

print("Ваш прогноз погоды на сегодня:")
if temperature > 0 and precipitation == 'rain':
print("Похоже, будет мокрый и тёплый день. Не забудьте зонтик!")
elif temperature > 0 and not precipitation:
print("Похоже, будет тёплый и ясный день. Наслаждайтесь!")
elif temperature <= 0 and precipitation == 'snow':
print("Похоже, будет холодно и снежно. Не забудьте тёплую одежду!")
else:
print("Похоже, будет холодный и ясный день. Тепло одевайтесь!")

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

Вложенные условия

Вложенные условия — это конструкция Python, помогающая вкладывать условные операторы друг в друга. Использование этой функции позволяет упростить разветвления в программе. Без них код будет сложнее.

Возьмём для примера ситуацию, когда пользователь авторизуется на сайте. Сперва программе нужно проверить, является ли он администратором сайта. Если да, то следом необходимо убедиться, что он вводит правильный пароль. Код может быть таким:

def validate_user(username, password):
if username == 'admin':
if password == 'secret':
return True
else:
print("Неверный пароль")
else:
print("Неверное имя пользователя")

username = input("Введите имя пользователя: ")
password = input("Введите пароль: ")

if validate_user(username, password):
print("Доступ разрешён")
else:
print("Доступ запрещён")

Тернарный оператор

Тернарный оператор помогает задать условное выражение в сокращённой форме. По сути, это синтаксический сахар в «Питоне», выполняющий функцию быстрого создания выбор из двух опций. Сначала программист указывает условие, затем добавляет два варианта значений, которые нужно вернуть. Когда условие верное, получается первое значение, когда ложное — второе значение.

Синтаксис тернарных операторов в Python

Представим, что перед разработчиком стоит задача реализовать ответ экзаменационного теста исходя из набранных студентом баллов. При этом проходной балл — 60. Код в этом случае будет такой:

def get_message(score):
is_passing = score >= 60
return "Вы сдали экзамен" if is_passing else "Вам нужно больше заниматься"

score = int(input("Введите ваш балл: "))

print(get_message(score))

Использование условных операторов

Чаще всего программисты применяют условный оператор elif для разветвлений логики программы, написанной на «Питоне». Допустим, стоит задача проверить статус ответа от внешнего API в интернет-магазине. Если статус 200, пользователю будет показано сообщение «Заказ создан». А в случае статуса 400 появится уведомление, что форма заказа заполнена неверно. Код выглядит, к примеру, так:

import requests

def check_order_status(response_code):
if response_code == 200:
return "Заказ создан"
elif response_code == 400:
return "Форма заказа заполнена неверно"
else:
return f"Неожиданный статус ответа: {response_code}"

response = requests.get("https://example.com/api/order")
response_code = response.status_code

print(check_order_status(response_code))

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

Операторы if, elif и else позволяют задать условия для выполнения определённого блока кода. Например, если требуется узнать, находится ли число в заданном диапазоне, в коде применяется условный оператор if, который помогает проверить граничные значения.

Допустим, есть задача выяснить, подана ли нам на вход всего лишь одна цифра. В случае когда это так, выводится уведомление, что пользовательский ввод верен. Если оно больше 9 или меньше 0 либо вообще не является цифрой, появляется уведомление об ошибке.

Пример кода:

x = input("Введите цифру: ")

if not x.isdigit():
raise TypeError("Введённое значение не является числом")

if int(x) < 0 or int(x) > 9: # также можно было проверить на len(x) > 1
raise ValueError("Ошибка: вы ввели не одну цифру!")

print("Спасибо, всё верно!")

Обратите внимание, что благодаря команде “raise” блок else будет необязателен, так как при ошибке программа досрочно завершает работу и дальнейший код выполнен не будет. По этой же причине в таком случае можно не писать и elif.

Совет эксперта

Артём Стрельцов
По сути, условные операторы — это одно из первых понятий, с которыми сталкивается человек, начинающий изучать программирование. Это база, без которой невозможно заниматься разработкой на любом языке, будь то Python, Java, C++ или Ruby. Понимание работы условных операторов позволит делать их гибкими и учитывать все возможные случаи при написании кода.
Статью подготовили:
Артём Стрельцов
Яндекс Практикум
Разработчик
Женя Соловьёва
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Угадайте, где правда, а где фейк про IT, и получите скидку на курсы Практикума
Tue Feb 11 2025 19:02:50 GMT+0300 (Moscow Standard Time)