Добавить в корзинуПозвонить
Найти в Дзене
Дойти до IT

Python - Тернарный оператор, генератор

Тернарный условный оператор в 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
Оглавление

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

Тернарный условный оператор в 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]