Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
❓ Вопрос на собеседовании
Что такое yield from
в Python и как оно помогает при работе с большими наборами данных?
Ответ ⬇️
yield from используется для делегирования работы с подгенераторами в Python. Это позволяет "плоско" и эффективно обрабатывать вложенные данные, избегая лишних циклов и улучшая производительность.
Пример использования ⚙️
def flatten(nested_list):
for item in nested_list:
if isinstance(item, list):
yield from flatten(item) # Делегирует генерацию к вложенному списку
else:
yield item
nested_list = [1, [2, [3, 4], 5], 6]
for num in flatten(nested_list):
print(num)
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция generator возвращает 1 и 2 с помощью yield. При следующем вызове next(gen) выполняется return 3, вызывая StopIteration с атрибутом value равным 3. Это значение доступно через e.value.
Напоминаю, что у нас есть свой чат, где вы можете задать свой вопрос
/channel/Chat_for_Python
🤔 Как это работает? — Python: List Comprehension
List comprehension — это мощный способ создавать списки в Python одной строкой. Давайте разберём, как работает этот синтаксис.
➡️ Как это работает:• range(10)
генерирует числа от 0 до 9.•
Для каждого числа x
из range(10)
выполняется выражение x**2
, которое возводит x
в квадрат.•
Результаты собираются в список squares
.
Развернутый аналог:
squares = []
for x in range(10):
squares.append(x**2)
print(squares) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
⚙️ shutil.copy()
Функция shutil.copy()
из модуля shutil
позволяет копировать файлы из одного места в другое. Это удобно для работы с файлами и создания резервных копий.
Python Learning 👩💻
🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 16 - 17 декабря в 19:00 мск.
О перспективах направления Python и многом другом расскажет Рафаэль Мухаметшин, Middle Бэкенд-разработчик в «ПИК Digital» с опытом в разработке более 3 лет.
На вебинаре вы:
☑️ Самостоятельно напишете Telegram-бота в формате консольного приложения.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Изучите рекомендации по продолжению обучения и развитию карьеры Backend-разработчика на Python.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.
🎁 Приятные бонусы - карта компетенций начинающего Python-разработчика и гайд «Как заговорить на сленге IT-специалистов» всем участникам интенсива!
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8KMaNx
✅️ GitHub теперь в Telegram!
Подписывайтесь: @GitHub
⚙️ itertools.chain()
Функция itertools.chain()
позволяет объединить несколько итерируемых объектов в один. Это полезно, когда нужно работать с несколькими списками или другими коллекциями без явной конкатенации.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Список lst — изменяемый тип, и изменения внутри функции влияют на оригинальный объект, поэтому 4 добавляется к списку. Переменная n — неизменяемый тип (int), поэтому увеличение num на 1 не изменяет оригинальный n.
⚙️ collections.deque
В Python класс collections.deque
предоставляет двустороннюю очередь с эффективным добавлением и удалением элементов с обоих концов. Это полезно для реализации очередей, стеков и буферов.
Python Learning 👩💻
⚙️ eval()
В Python функция eval()
выполняет строку как Python-код. Это мощный инструмент для динамического выполнения выражений, но его следует использовать с осторожностью.
Python Learning 👩💻
❓Что такое абстракция и почему она важна в программировании?
Выбор правильных абстракций помогает для написания качественного кода.
✅ Регистрируйтесь на открытый урок «Абстракция как математический объект» и вы узнаете как абстракции помогают упростить сложные системы и сделать код более понятным.
Урок посвящен курсу «Математика для программистов» от Otus — лучшие практики, после изучения которых вы сможете быстрее изучать новые языки программирования и фреймворки.
👉 Регистрация https://clck.ru/3F44ff
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Класс Counter реализует интерфейсы __iter__ и __next__, превращая объект в итератор. Итератор начинает с 1 и увеличивает значение на каждом шаге, пока не достигнет 3. После этого выбрасывается исключение StopIteration, которое завершает цикл.
⚙️ sys.intern()
В Python функция sys.intern()
оптимизирует хранение строк, создавая их в единственном экземпляре в памяти (интернирование). Это ускоряет сравнение строк за счёт сравнения ссылок, а не их содержимого.
Python Learning 👩💻
⚙️ sys.setrecursionlimit()
В Python функция sys.setrecursionlimit()
позволяет изменить максимальную глубину рекурсии. Это полезно для задач с глубокой рекурсией, таких как обход деревьев или выполнение сложных алгоритмов.
Python Learning 👩💻
❌ Антипаттерн недели: Использование изменяемых объектов по умолчанию
Использование изменяемых объектов (например, списков или словарей) в качестве значений по умолчанию для аргументов функции может привести к неожиданному поведению.
Значение по умолчанию ([]
) создаётся один раз при определении функции и используется повторно для всех вызовов. Поэтому изменения сохраняются между вызовами функции.
✔️ Как исправить:
Используйте None
и создавайте новый список внутри функции:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2] — теперь всё работает правильно!
⚙️ inspect.signature()
В Python функция inspect.signature()
из модуля inspect
позволяет получать информацию о сигнатуре функций и методов. Это полезно для анализа кода во время выполнения, например, для отладки или динамического вызова функций.
Python Learning 👩💻
PyOxidizer
PyOxidizer — это инструмент, позволяющий упаковать Python-проект в единый исполняемый файл, включающий интерпретатор Python, все необходимые библиотеки и ресурсы. Это позволяет запускать ваши приложения без необходимости предварительной установки Python или каких-либо зависимостей.
Python Learning 👩💻
⚙️ difflib.get_close_matches()
В Python функция difflib.get_close_matches()
находит наиболее похожие строки из списка на основе заданного шаблона. Это удобно для реализации поиска, проверки орфографии или подсказок для ввода.
Python Learning 👩💻
❓ Вопрос на собеседовании
Что такое dataclass
в Python, как работает параметр init=False
и зачем он нужен?
Ответ ⬇️
dataclass — это декоратор из модуля dataclasses, который упрощает создание классов для хранения данных, автоматически генерируя методы, такие как __init__, __repr__, и __eq__. Параметр init=False позволяет исключить атрибут из автоматически сгенерированного конструктора __init__. Это полезно для атрибутов, которые не должны передаваться при создании экземпляра, например, для вычисляемых значений или внутренних данных.
Пример использования ⚙️
from dataclasses import dataclass, field
@dataclass
class Product:
name: str
price: float
discount: float = field(init=False) # Исключаем из __init__
def __post_init__(self):
self.discount = self.price * 0.1 # Вычисляем скидку после инициализации
# Создание экземпляра
item = Product(name="Laptop", price=1000)
print(item) # Product(name='Laptop', price=1000, discount=100.0)
🔒 Частное облако SpaceWeb — полный контроль и безопасность для вашего бизнеса
Создавайте изолированные среды для корпоративных приложений и данных. Наше частное облако сочетает максимальную безопасность, гибкость и легкость управления. Идеально подходит для тех, кто ценит конфиденциальность и защиту.
💼 Ваши данные — под надежной защитой, доступ к ним — в любое время, в любой точке мира.
Хотите узнать больше? Подпишитесь на канал SpaceWeb и будьте в курсе всех новинок в мире облачных технологий!
Реклама.ООО "СпейсВэб". ИНН: 7813376370 erid: 2VtzqwKzQ8h
⚙️ collections.ChainMap
В Python класс collections.ChainMap
объединяет несколько словарей в одну структуру, позволяя искать ключи сразу во всех словарях. Это удобно для объединения настроек или конфигураций.
Python Learning 👩💻
⚙️ re.findall()
В Python функция re.findall()
из модуля re
находит все совпадения с заданным регулярным выражением в строке и возвращает их в виде списка. Это удобно для извлечения данных из текста.
Python Learning 👩💻
❓ Вопрос на собеседовании
Что такое контекстные переменные (contextvars
) в Python, как они работают и где применяются?
Ответ ⬇️
Контекстные переменные (contextvars) — это механизм, введённый в Python 3.7, который позволяет хранить и изолировать данные для каждого потока выполнения. Они особенно полезны в асинхронных приложениях, где глобальные переменные могут быть небезопасны из-за возможного пересечения данных между задачами. В отличие от локальных переменных потоков (threading.local), contextvars работают корректно в асинхронных средах, таких как asyncio.
Пример использования ⚙️
import contextvars
import asyncio
# Создаём контекстную переменную
user_context = contextvars.ContextVar('user')
async def task(name):
user_context.set(name) # Устанавливаем значение
await asyncio.sleep(1) # Эмуляция асинхронной задачи
print(f"Текущий пользователь: {user_context.get()}")
async def main():
await asyncio.gather(task("
🔥 БЕСПЛАТНЫЙ КУРС ПО ВРЕМЕННЫМ РЯДАМ И AI 🔥
Ищете практический и углубленный курс, чтобы освоить временные ряды? Мы создали курс из 5 объемных занятий. Это именно то, что нужно, чтобы прокачаться в одной из самых востребованных аналитических областей абсолютно бесплатно!
📌 Темы занятий:
1. Основы анализа временных рядов
2. Прогнозирование на основе временных рядов с помощью AI
3. Выявление аномалий в данных с помощью нейросетей
4. Применение временных рядов в рекомендационных системах
5. Тенденции и будущее анализа временных рядов с AI
Почему временные ряды? Потому что это одна из центральных тем, они отличаются тем, что:
🧬 1. Очень нужны компаниям - прям прямая необходимость
🧬 2. Очень непредсказуемые - в отличие от CV, где всё понятно, тут итоговая точность нейронки вообще непредсказуемая
🤖 Присоединяйтесь к нашему бесплатному курсу и разберитесь в этой увлекательной теме с нами!
⚙️ isinstance()
В Python функция isinstance()
проверяет, является ли объект экземпляром указанного класса или его подкласса. Это удобно для проверки типов во время выполнения.
Python Learning 👩💻
⚙️ setattr()
В Python функция setattr()
позволяет динамически устанавливать значение атрибута объекта. Это полезно, если имя атрибута известно только во время выполнения программы.
Python Learning 👩💻
Wooey
Wooey — это библиотека Python, которая позволяет создавать простые веб-интерфейсы для ваших скриптов командной строки. Она является мощным инструментом для повышения доступности, улучшения удобства использования и сбора данных.
Python Learning 👩💻