Условные операторы позволяют выполнять разные блоки кода в зависимости от выполнения определенных условий. Это ключевая концепция программирования, которая позволяет программе принимать решения.
Условные операторы - это конструкции, которые позволяют программе выбирать путь выполнения в зависимости от логических условий. Представьте, что вы стоите на развилке дороги и выбираете путь в зависимости от знака.
В Python условные операторы работают следующим образом:
Условные операторы проверяют истинность выражения и в зависимости от результата выполняют соответствующий блок кода.
Самый простой условный оператор - это if. Он выполняет блок кода только если условие истинно (True).
Оператор if состоит из:
if:Важно: блок кода должен иметь одинаковый отступ (обычно 4 пробела)
if условие:
# блок кода, выполняемый если условие истинно
оператор1
оператор2
...
возраст = 18
if возраст >= 18:
print("Вы совершеннолетний")
print("Можно получить водительские права")
print("Программа завершена")
Конструкция if-else позволяет выполнить один блок кода, если условие истинно, и другой блок, если условие ложно.
Блок кода - это группа операторов, объединенных одинаковыми отступами. В Python отступы определяют принадлежность операторов к блокам. Это делает код более читаемым и структурированным.
if условие:
# блок кода, выполняемый если условие истинно
операторы
else:
# блок кода, выполняемый если условие ложно
операторы
возраст = 16
if возраст >= 18:
print("Вы совершеннолетний")
print("Можно получить водительские права")
else:
print("Вы несовершеннолетний")
print("Подождите немного")
print("Программа завершена")
Когда нужно проверить несколько условий, используется конструкция if-elif-else. elif - это сокращение от "else if".
Конструкция if-elif-else проверяет условия по порядку:
Выполняется только один блок кода - первый, условие которого истинно.
if условие1:
# блок кода, выполняемый если условие1 истинно
операторы
elif условие2:
# блок кода, выполняемый если условие2 истинно
операторы
elif условие3:
# блок кода, выполняемый если условие3 истинно
операторы
else:
# блок кода, выполняемый если все условия ложны
операторы
оценка = 85
if оценка >= 90:
print("Отлично! Оценка A")
elif оценка >= 80:
print("Хорошо! Оценка B")
elif оценка >= 70:
print("Удовлетворительно! Оценка C")
elif оценка >= 60:
print("Плохо! Оценка D")
else:
print("Неудовлетворительно! Оценка F")
Условные операторы можно вкладывать друг в друга для создания более сложной логики.
Вложенные конструкции - это когда одна конструкция находится внутри другой. В случае условных операторов это означает, что внутри блока if может быть еще один if.
Вложенные конструкции позволяют создавать сложную логику принятия решений, но их не следует делать слишком глубокими, чтобы код оставался читаемым.
возраст = 25
имеет_водительские_права = True
if возраст >= 18:
if имеет_водительские_права:
print("Можно водить машину")
else:
print("Нужно получить права")
else:
print("Слишком молод для вождения")
Для создания сложных условий используются логические операторы: and, or, not.
Логические операторы позволяют комбинировать несколько условий:
and - оба условия должны быть истиннымиor - хотя бы одно условие должно быть истиннымnot - инвертирует (меняет на противоположное) значение условияПриоритет операторов: not, and, or (можно использовать скобки для изменения порядка)
возраст = 25
доход = 50000
кредитный_рейтинг = 700
# Использование and
if возраст >= 18 and доход >= 30000:
print("Можно получить кредит")
# Использование or
if доход >= 100000 or кредитный_рейтинг >= 750:
print("Премиум одобрение кредита")
# Использование not
if not (возраст < 18):
print("Совершеннолетний")
Тернарный оператор позволяет записать простое условие в одну строку.
Тернарный оператор - это краткая форма записи простого условия if-else. Он полезен, когда нужно присвоить значение переменной в зависимости от условия.
Синтаксис тернарного оператора: значение_если_истина if условие else значение_если_ложь
переменная = значение_если_истина if условие else значение_если_ложь
возраст = 20
статус = "Совершеннолетний" if возраст >= 18 else "Несовершеннолетний"
print(статус)
# Эквивалентно:
# if возраст >= 18:
# статус = "Совершеннолетний"
# else:
# статус = "Несовершеннолетний"
Для выполнения заданий по условным операторам следуйте этим шагам:
Задание 1: Анализ числа
try:
число = float(input("Введите число: "))
if число > 0:
print("Число положительное")
elif число < 0:
print("Число отрицательное")
else:
print("Число равно нулю")
except ValueError:
print("Ошибка: введите корректное число!")
Задание 2: Проверка возраста для голосования
try:
возраст = int(input("Введите ваш возраст: "))
if возраст >= 18:
print("Вы можете голосовать")
elif возраст >= 0:
print(f"Подождите еще {18 - возраст} лет(года)")
else:
print("Возраст не может быть отрицательным!")
except ValueError:
print("Ошибка: введите корректное число!")
Задание 3: Система оценок
try:
оценка = int(input("Введите оценку (0-100): "))
if not (0 <= оценка <= 100):
print("Ошибка: оценка должна быть от 0 до 100!")
elif оценка >= 90:
print("Оценка: A")
elif оценка >= 80:
print("Оценка: B")
elif оценка >= 70:
print("Оценка: C")
elif оценка >= 60:
print("Оценка: D")
else:
print("Оценка: F")
except ValueError:
print("Ошибка: введите корректное число!")
Задание 4: Определение високосного года
try:
год = int(input("Введите год: "))
if (год % 4 == 0 and год % 100 != 0) or (год % 400 == 0):
print(f"{год} - високосный год")
else:
print(f"{год} - не високосный год")
except ValueError:
print("Ошибка: введите корректный год!")
Задание 5: Калькулятор скидок
try:
сумма = float(input("Введите сумму покупки: "))
if сумма < 0:
print("Сумма не может быть отрицательной!")
elif сумма >= 10000:
скидка = 0.2
print(f"Скидка 20%: {сумма * скидка:.2f}")
print(f"Итого: {сумма * (1 - скидка):.2f}")
elif сумма >= 5000:
скидка = 0.15
print(f"Скидка 15%: {сумма * скидка:.2f}")
print(f"Итого: {сумма * (1 - скидка):.2f}")
elif сумма >= 1000:
скидка = 0.1
print(f"Скидка 10%: {сумма * скидка:.2f}")
print(f"Итого: {сумма * (1 - скидка):.2f}")
else:
print(f"Без скидки. Итого: {сумма:.2f}")
except ValueError:
print("Ошибка: введите корректную сумму!")
Задание 6: Система доступа
try:
возраст = int(input("Введите ваш возраст: "))
статус = input("Введите статус (активен/неактивен): ").lower()
if 18 <= возраст <= 65 and статус == "активен":
print("Доступ разрешен")
else:
print("Доступ запрещен")
if возраст < 18:
print("Причина: возраст меньше 18 лет")
elif возраст > 65:
print("Причина: возраст больше 65 лет")
if статус != "активен":
print("Причина: статус неактивен")
except ValueError:
print("Ошибка: введите корректные данные!")
Задание 7: Классификация треугольников
try:
сторона1 = float(input("Введите длину первой стороны: "))
сторона2 = float(input("Введите длину второй стороны: "))
сторона3 = float(input("Введите длину третьей стороны: "))
# Проверка существования треугольника
if (сторона1 + сторона2 > сторона3 and
сторона1 + сторона3 > сторона2 and
сторона2 + сторона3 > сторона1):
if сторона1 == сторона2 == сторона3:
print("Треугольник равносторонний")
elif сторона1 == сторона2 or сторона1 == сторона3 or сторона2 == сторона3:
print("Треугольник равнобедренный")
else:
print("Треугольник разносторонний")
else:
print("Треугольник с такими сторонами не существует!")
except ValueError:
print("Ошибка: введите корректные длины сторон!")
Задание 8: Термометр
try:
температура = float(input("Введите температуру в градусах Цельсия: "))
состояние = "твердое" if температура <= 0 else "газообразное" if температура >= 100 else "жидкое"
print(f"При температуре {температура}°C вода находится в {состояние} состоянии")
# Альтернативный способ без тернарного оператора:
# if температура <= 0:
# print("При такой температуре вода находится в твердом состоянии (лед)")
# elif температура >= 100:
# print("При такой температуре вода находится в газообразном состоянии (пар)")
# else:
# print("При такой температуре вода находится в жидком состоянии")
except ValueError:
print("Ошибка: введите корректную температуру!")