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

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

Теория: Как работают условные операторы?

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

В Python условные операторы работают следующим образом:

  • Выражение в условии вычисляется и возвращает True (истина) или False (ложь)
  • Если результат True, выполняется первый блок кода
  • Если результат False, выполняется альтернативный блок кода (если он есть)
Принцип работы

Условные операторы проверяют истинность выражения и в зависимости от результата выполняют соответствующий блок кода.

Оператор if

Самый простой условный оператор - это if. Он выполняет блок кода только если условие истинно (True).

Практическое объяснение оператора if

Оператор if состоит из:

  • Ключевого слова if
  • Условия (логического выражения)
  • Двоеточия :
  • Блока кода с отступом, который выполняется при истинности условия

Важно: блок кода должен иметь одинаковый отступ (обычно 4 пробела)

Синтаксис if
if условие:
    # блок кода, выполняемый если условие истинно
    оператор1
    оператор2
    ...
Пример использования if
возраст = 18

if возраст >= 18:
    print("Вы совершеннолетний")
    print("Можно получить водительские права")

print("Программа завершена")

Оператор if-else

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

Теория: Что такое блоки кода?

Блок кода - это группа операторов, объединенных одинаковыми отступами. В Python отступы определяют принадлежность операторов к блокам. Это делает код более читаемым и структурированным.

Синтаксис if-else
if условие:
    # блок кода, выполняемый если условие истинно
    операторы
else:
    # блок кода, выполняемый если условие ложно
    операторы
Пример использования if-else
возраст = 16

if возраст >= 18:
    print("Вы совершеннолетний")
    print("Можно получить водительские права")
else:
    print("Вы несовершеннолетний")
    print("Подождите немного")

print("Программа завершена")

Оператор if-elif-else

Когда нужно проверить несколько условий, используется конструкция if-elif-else. elif - это сокращение от "else if".

Практическое объяснение if-elif-else

Конструкция if-elif-else проверяет условия по порядку:

  • Сначала проверяется if
  • Если if ложь, проверяется первый elif
  • Если elif ложь, проверяется следующий elif и т.д.
  • Если ни одно условие не истинно, выполняется else (если он есть)

Выполняется только один блок кода - первый, условие которого истинно.

Синтаксис if-elif-else
if условие1:
    # блок кода, выполняемый если условие1 истинно
    операторы
elif условие2:
    # блок кода, выполняемый если условие2 истинно
    операторы
elif условие3:
    # блок кода, выполняемый если условие3 истинно
    операторы
else:
    # блок кода, выполняемый если все условия ложны
    операторы
Пример использования if-elif-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. Определите, какие условия нужно проверить
  2. Выберите подходящую конструкцию (if, if-else, if-elif-else)
  3. Сформулируйте логические выражения для условий
  4. Напишите блоки кода для каждого случая
  5. Проверьте все возможные варианты выполнения
Задания
  1. Анализ числа: Напишите программу, которая проверяет, является ли введенное число положительным, отрицательным или нулем. Используйте конструкцию if-elif-else. Подсказка: сравните число с нулем с помощью операторов сравнения.
  2. Проверка возраста для голосования: Создайте программу, которая определяет, может ли человек голосовать (возраст >= 18 лет). Добавьте обработку ошибок ввода. Подсказка: используйте try-except для обработки ValueError.
  3. Система оценок: Напишите программу, которая по оценке (от 0 до 100) выводит буквенную оценку (A, B, C, D, F). Добавьте проверку корректности ввода. Подсказка: используйте if-elif-else с проверкой диапазонов.
  4. Определение високосного года: Создайте программу, которая проверяет, является ли год високосным. Год високосный если делится на 4, но не делится на 100, либо делится на 400. Подсказка: используйте логические операторы and, or, not.
  5. Калькулятор скидок: Напишите программу, которая рассчитывает скидку на покупку. Если сумма больше 1000, скидка 10%. Если больше 5000, скидка 15%. Если больше 10000, скидка 20%. Подсказка: используйте вложенные условия или if-elif-else.
  6. Система доступа: Создайте программу, которая проверяет доступ пользователя. Доступ разрешен если возраст от 18 до 65 и статус активен. Подсказка: используйте логический оператор and для комбинации условий.
  7. Классификация треугольников: Напишите программу, которая по трем сторонам определяет тип треугольника (равносторонний, равнобедренный, разносторонний). Подсказка: сравните длины сторон между собой.
  8. Термометр: Создайте программу, которая по температуре определяет состояние воды (твердое, жидкое, газообразное). Подсказка: используйте тернарный оператор для простых условий.
Решения:

Задание 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("Ошибка: введите корректную температуру!")
Предыдущий урок Следующий урок