В прошлых статьях мы научились работать с данными: мы присваивали переменные, вычисляли их значения и проводили простые операции. Но реальный мир не такой линейный, как математические выражения. В жизни нужно часто принимать решения, основываясь на том, что ты видишь или что происходит вокруг. Точно так же и в программировании — нам нужно уметь выбирать: что делать, если одно условие выполнено, а что — если другое.
В этой статье мы научимся делать программы, которые принимают решения. Мы разберём условия и ветвления, чтобы вы могли строить логику в своих программах. А именно:
- что такое if, elif и else;
- как использовать логические операторы для комбинирования условий;
- как работать с истиной и ложью значений, чтобы писать более гибкий код.
Сначала: простая проверка
Для начала давайте сделаем простое, но полезное: программу, которая проверяет, можно ли пользователю купить билет на основании его возраста. Если возраст больше или равен 18 — вы даёте разрешение, если меньше — отказываете.
Что нужно сделать?
- Попросить пользователя ввести свой возраст.
- Проверить, больше ли этот возраст 18 лет.
- Напечатать сообщение в зависимости от того, прошло ли условие или нет.
Вот как это выглядит в коде:
age = int(input("Сколько вам лет? "))
if age >= 18:
print("Вы можете купить билет!")
else:
print("Извините, вы не можете купить билет.")
Что происходит здесь?
- Мы используем input(), чтобы получить возраст пользователя.
- Мы применяем условие с if, проверяя, больше ли или равно введённое значение 18.
- Если условие выполняется (то есть возраст больше или равен 18), выводим сообщение о разрешении.
- В противном случае срабатывает else, и выводится сообщение о запрете.
Сейчас программа достаточно проста, но она уже решает конкретную задачу.
Разбираем, как это работает
Теперь давайте разберём, что происходит в каждой строке кода:
age = int(input("Сколько вам лет? "))
- input() ждёт, пока пользователь введёт текст, и возвращает его в виде строки.
- Мы используем int(), чтобы преобразовать эту строку в число. Это важно, потому что возраст — это числовое значение, а не текст.
- В результате переменная age содержит число, которое мы потом будем проверять.
Дальше идёт условие:
if age >= 18:
- Это проверка: если возраст больше или равен 18, то условие становится истинным, и программа выполнит блок кода под этим if.
- Важно понимать: после if всегда идёт условие, которое проверяется на истинность или ложность. Если условие истинно (True), выполняется соответствующий блок кода, который идёт с отступом.
Вот блок, который выполнится, если условие истинно:
print("Вы можете купить билет!")
Если условие не выполнится (то есть если возраст меньше 18), сработает следующий блок:
else:
print("Извините, вы не можете купить билет.")
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
else — это ветвление для всех оставшихся случаев. Если первое условие не выполнится, выполнится блок, связанный с else.
Усложняем задачу: несколько условий
Теперь давайте усложним задачу. Представьте, что мы не только проверяем возраст, но и проверяем, есть ли у пользователя билет. Добавим ещё одно условие, и сделаем его более сложным.
Что нужно сделать?
- Проверить возраст.
- Проверить наличие билета.
- Если возраст больше или равен 18 и есть билет, разрешить покупку.
- Если возраст меньше 18, отказывать в любом случае.
- Если возраст больше или равен 18, но нет билета, напечатать сообщение о том, что билет нужно купить.
Вот как это будет выглядеть:
age = int(input("Сколько вам лет? "))
has_ticket = input("У вас есть билет? (да/нет): ").lower() == "да"
if age >= 18 and has_ticket:
print("Вы можете пройти!")
elif age < 18:
print("Извините, вы не можете пройти, так как вам меньше 18 лет.")
else:
print("Для прохода нужен билет!")
Что добавилось?
- Мы добавили второе условие: есть ли билет. Мы спрашиваем пользователя, есть ли у него билет. Для этого используем input(), а потом с помощью .lower() преобразуем ответ в нижний регистр и проверяем, равно ли это строке "да".
- В if мы проверяем два условия сразу: возраст больше или равен 18, и билет у пользователя есть. Если оба эти условия выполняются, программа разрешает пройти.
- В elif мы проверяем, если возраст меньше 18, и выводим сообщение об этом.
- В блоке else проверяется, если билет есть, но возраст не прошёл, выводится сообщение о необходимости покупки билета.
Логические операторы: and, or, not
Мы использовали логический оператор and, который проверяет два условия: оба должны быть истинными, чтобы условие сработало.
Но если у нас будет ситуация, когда достаточно одного из условий, чтобы условие сработало, мы используем or:
age = int(input("Сколько вам лет? "))
has_ticket = input("У вас есть билет? (да/нет): ").lower() == "да"
if age >= 18 or has_ticket:
print("Добро пожаловать!")
else:
print("Пожалуйста, убедитесь, что у вас есть билет и вам 18 или больше.")
Здесь программа пускает пользователя, если ему больше 18 лет или у него есть билет. Если хотя бы одно из этих условий верно, человек может пройти.
Работать с истиной и ложью
В Python всё проще, чем вы думаете. Пустые строки, пустые списки и другие «пустые» объекты воспринимаются как ложь. Всё остальное — это истина.
name = input("Как вас зовут? ")
if name:
print(f"Привет, {name}!")
else:
print("Вы не ввели имя.")
Здесь если пользователь не введёт имя, строка будет пустой, и Python воспримет это как ложь, сработает блок else.
Что мы на самом деле изучили?
- Условные операторы в Python: if, elif и else.
- Логические операторы: and, or, not.
- Как Python автоматически трактует истинность и ложность значений.
- Использование тернарного оператора для коротких условий.
Практика
Теперь, когда основные принципы ясны, давайте потренируемся:
- Проверка возраста и стоимости билета: Напишите программу, которая спрашивает возраст и стоимость билета. Если возраст больше 18 лет и стоимость билета меньше 1000, вывести «Вы можете купить билет». Если стоимость больше 1000, вывести «Цена слишком высока для вас».
- Скидка на товар: Напишите программу, которая спрашивает цену товара и выводит сумму со скидкой, если цена товара больше 500 (скидка 10%).
- Определение числа: Напишите программу, которая спрашивает число и выводит, чётное оно или нечётное, а также больше ли оно 10.
В следующей статье мы перейдём к циклам. Мы научимся повторять действия, чтобы не писать один и тот же код несколько раз.
05.12.2025
0
35
Комментарии
0