
Шаг 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]