• burger-icon

    Шаг 3. Тернарный оператор, генератор

    Баллов за прохождение: 1

    Тернарный условный оператор

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

    выражение1 if условие else выражение2

    Если условие истинно, будет выполнено выражение1, иначе будет выполнено выражение2.

    Давайте рассмотрим несколько примеров, для более четкого понимания.

    # Пример 1: Проверка четности числа
    x = 5
    result = "Четное" if x % 2 == 0 else "Нечетное"
    print(result)  # Output: Нечетное

    В этом случае, в переменную result записывается одна из строчек: "Четное" или "Нечетное", в зависимости от условия после инструкции if, то есть, если число является четным.

    # Пример 2: Проверка наличия элемента в списке
    my_list = [1, 2, 3, 4, 5]
    element = 6
    message = f"Элемент {element} найден" if element in my_list else f"Элемент {element} не найден"
    print(message)  # Output: Элемент 6 не найден

    В этом случае происходит поиск определенного элемента в списке. Всё происходит точно по такой же схеме: если условие истино, то записывается первое выражение, что элемент найден, в ином случае в переменную записывается строчка после else.

    # Пример 3: Вывод значения по условию
    x = -5
    absolute_value = x if x >= 0 else -x
    print(absolute_value)  # Output: 5

    В большинстве случаев тернарник можно записывать прямо в функцию print().

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

    Генераторы

    Генераторы в Python — это специальный вид итераторов, которые позволяют создавать последовательности значений "на лету", без необходимости хранить все значения в памяти одновременно.

    Они позволяют экономить память и обеспечивают более эффективное выполнение кода.

    Существует два способа создания генератора: Через Генераторное выражение и Функцию генератор. На этом уроке мы рассмотрим только первый способ.

    Генераторное выражение

    Синтаксис выражения:

    ([действие с элементом] for [временная переменная] in [итерируемый объект])

    Пример генераторного выражения:

     squares = (x * x for x in range(1, 11))
    for square in squares:
        print(square)

    Этот код выведет квадраты всех чисел от 1 до 10.

    Условия в генераторном выражении

    Так же в генераторные выражения можно добавлять условия, к примеру возьмем список с числами от 1 до 10, и выведем все четные числа:

    my_list = list(range(1, 11))
    gen = [x for x in my_list if x % 2 == 0]
    print(gen) # [2, 4, 6, 8, 10]

    Ветвление в генераторном выражении

    Для использования ветвления в генераторном выражении условие ветвления пишется перед итератором

    my_list = list(range(-2, 5))
    gen = [x if x < 0 else x * x for x in my_list]
    print(gen) # [-2, -1, 0, 1, 4, 9, 16]

    Комбинация ветвления и условия в генераторном выражении

    Вы так же можете комбинировать ветвление и условие в выражении:

    my_list = list(range(-2, 5))
    gen = [x * 2 if x < 0 else x * x for x in my_list if x % 2 == 0]
    print(gen) # [-4, 0, 4, 16]

    Для решения задачи, Зарегистрируйтесь или Войдите на сайт.