🐍 Укус питона 🐍
رفتن به کانال در Telegram
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @tg_adminisrator 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython
نمایش بیشتر2 334
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-117 روز
-3730 روز
آرشیو پست ها
2 334
👩💻 Что такое генераторы в Python
Генераторы — это функции, которые возвращают значения по одному с помощью ключевого слова yield.
В отличие от списков, они не хранят все данные в памяти сразу, а создают их "на лету".➡️ Пример:
def count_up_to(n):
for i in range(1, n + 1):
yield i
for num in count_up_to(5):
print(num)
📌 Генераторы экономят память и ускоряют работу с большими данными.
2 334
👩💻 List Comprehensions — краткий способ создавать списки
List comprehension в Python позволяет создавать списки в одну строку вместо циклов. Это делает код компактнее и читаемее
➡️ Пример:
# Обычный способ
squares = []
for i in range(1, 6):
squares.append(i**2)
# List comprehension
squares_compact = [i**2 for i in range(1, 6)]
print(squares_compact) # [1, 4, 9, 16, 25]
📌 Это удобный инструмент для фильтрации и преобразования данных в Python.
2 334
👩💻 Декораторы в Python — функции над функциями
В Python декораторы позволяют изменять поведение функций без изменения их кода.
Это "обёртки", которые выполняются до или после основной функции.➡️ Пример:
def logger(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def say_hello(name):
print(f"Привет, {name}!")
say_hello("Анна")
📌 Здесь @logger добавляет логирование при вызове say_hello, не меняя её код.
2 334
❓ Зачем используется функция
enumerate() в Python и когда её применять?
Функция enumerate() позволяет итерироваться по элементам последовательности вместе с их индексами. Это избавляет от необходимости вручную вести счётчик и делает код более чистым и читаемым.
✅Пример:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
# Вывод:
# 1 apple
# 2 banana
# 3 cherry
📌В этом примере enumerate() возвращает пары (индекс, значение), что удобно при работе с циклами.
enumerate() применяют, когда нужен доступ к индексу и самому элементу одновременно — например, при отладке, нумерации строк, формировании таблиц или логов. Это делает код более питоничным и компактным.
2 334
👩💻 dataclass — меньше кода для классов
@dataclass из модуля dataclasses автоматически создаёт методы __init__, __repr__, __eq__ и другие на основе аннотаций полей.
➡️ Пример:
from dataclasses import dataclass
@dataclass
class User:
name: str
age: int
u = User("Анна", 25)
print(u) # User(name='Анна', age=25)
📌 Удобно для хранения данных: меньше шаблонного кода, больше читаемости.
2 334
👩💻 chain — объединение нескольких последовательностей
itertools.chain() позволяет перебирать элементы из нескольких итерируемых объектов так, будто это один.
➡️ Пример:
from itertools import chain
a = [1, 2]
b = [3, 4]
c = [5]
for x in chain(a, b, c):
print(x, end=" ")
1 2 3 4 5
📌 Удобно, когда нужно пройтись по нескольким спискам подряд без создания нового объединённого списка.
2 334
👩💻 setdefault — добавление ключа, если его нет
Метод словаря
setdefault() возвращает значение по ключу, а если ключ отсутствует — создаёт его с указанным значением.
➡️ Пример:
user = {"name": "Анна"}
city = user.setdefault("city", "Москва")
print(city) # Москва
print(user) # {'name': 'Анна', 'city': 'Москва'}
📌 Удобно для инициализации значений в словаре без лишних проверок if key not in dict.
