Python Learning
32.6K subscribers
1.95K photos
8 videos
7 files
964 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
⚙️ heapq.heappush() и heapq.heappop()

В Python модуль heapq предоставляет функции для работы с кучами (heap) — структурами данных для управления приоритетами. heappush() добавляет элемент в кучу, а heappop() удаляет наименьший элемент.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🏆1
⚙️ min() и max()

В Python функции min() и max() используются для нахождения минимального и максимального значений в итерируемых объектах. Эти функции поддерживают кастомные критерии сравнения.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Вопрос на собеседовании

Что такое генераторы Python, как работает метод send() в генераторах, и как его можно использовать для управления их поведением?

Ответ ⬇️
Генераторы в Python — это функции, которые используют yield для возврата значения и приостановки выполнения. Метод send() позволяет отправлять данные обратно в генератор, которые затем могут быть использованы внутри генератора при следующем возобновлении. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные в них.

Пример использования ⚙️
def interactive_generator():
value = yield "Начало" # Возвращаем начальное значение
while value:
value = yield f"Вы отправили: {value}" # Возвращаем обработанное значение

gen = interactive_generator()
print(next(gen)) # "Начало"
print(gen.send("Привет")) # "Вы отправили: Привет"
print(gen.send("Python")) # "Вы отправили: Python"
gen.close() # Завершаем генератор


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️ vars()

В Python функция vars() возвращает словарь атрибутов объекта или локальные переменные, если объект не указан. Это удобно для работы с объектами или отладки.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6
Wooey

Wooey — это библиотека Python, которая позволяет создавать простые веб-интерфейсы для ваших скриптов командной строки. Она является мощным инструментом для повышения доступности, улучшения удобства использования и сбора данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Что будет выведено при выполнении кода?

Пояснение
⬇️
Класс Counter реализует интерфейсы __iter__ и __next__, превращая объект в итератор. Итератор начинает с 1 и увеличивает значение на каждом шаге, пока не достигнет 3. После этого выбрасывается исключение StopIteration, которое завершает цикл.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚙️ setattr()

В Python функция setattr() позволяет динамически устанавливать значение атрибута объекта. Это полезно, если имя атрибута известно только во время выполнения программы.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚙️ isinstance()

В Python функция isinstance() проверяет, является ли объект экземпляром указанного класса или его подкласса. Это удобно для проверки типов во время выполнения.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
⚙️ eval()

В Python функция eval() выполняет строку как Python-код. Это мощный инструмент для динамического выполнения выражений, но его следует использовать с осторожностью.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Вопрос на собеседовании

Что такое контекстные переменные (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("


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚙️ collections.ChainMap

В Python класс collections.ChainMap объединяет несколько словарей в одну структуру, позволяя искать ключи сразу во всех словарях. Это удобно для объединения настроек или конфигураций.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
⚙️ itertools.chain()

Функция itertools.chain() позволяет объединить несколько итерируемых объектов в один. Это полезно, когда нужно работать с несколькими списками или другими коллекциями без явной конкатенации.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Вопрос на собеседовании

Что такое 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)


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Вопрос на собеседовании

Что такое 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)


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️ difflib.get_close_matches()

В Python функция difflib.get_close_matches() находит наиболее похожие строки из списка на основе заданного шаблона. Это удобно для реализации поиска, проверки орфографии или подсказок для ввода.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍7
PyOxidizer

PyOxidizer — это инструмент, позволяющий упаковать Python-проект в единый исполняемый файл, включающий интерпретатор Python, все необходимые библиотеки и ресурсы. Это позволяет запускать ваши приложения без необходимости предварительной установки Python или каких-либо зависимостей.

Python Learning 👩‍💻
👍11
Офер в VK для бэкендеров и ML-щиков — станьте частью команды за выходные.

4–5 октября пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: пройти техническое собеседование, встретиться с лидами и получить офер.

Требования для бекэндеров – три года опыта коммерческой разработки, знание Java, Go, Python, C++.
Для ML-щиков – те же три года опыта + знания Classic ML, RecSys, NLP/LLM, CV, Speech.

Читайте подробности на сайте и подавайте заявку до 2 октября!
💔3
🤔 Как это работает? — 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]


Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7