В Python модуль
heapq
предоставляет функции для работы с кучами (heap) — структурами данных для управления приоритетами. heappush()
добавляет элемент в кучу, а heappop()
удаляет наименьший элемент.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🏆1
В Python функции
min()
и max()
используются для нахождения минимального и максимального значений в итерируемых объектах. Эти функции поддерживают кастомные критерии сравнения.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Что такое генераторы Python, как работает метод
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
В Python функция
vars()
возвращает словарь атрибутов объекта или локальные переменные, если объект не указан. Это удобно для работы с объектами или отладки.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6
Wooey
Wooey — это библиотека Python, которая позволяет создавать простые веб-интерфейсы для ваших скриптов командной строки. Она является мощным инструментом для повышения доступности, улучшения удобства использования и сбора данных.
Python Learning👩💻
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
👍8
В Python функция
setattr()
позволяет динамически устанавливать значение атрибута объекта. Это полезно, если имя атрибута известно только во время выполнения программы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
В Python функция
isinstance()
проверяет, является ли объект экземпляром указанного класса или его подкласса. Это удобно для проверки типов во время выполнения.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В Python функция
eval()
выполняет строку как Python-код. Это мощный инструмент для динамического выполнения выражений, но его следует использовать с осторожностью.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Что такое контекстные переменные (
contextvars
) в Python, как они работают и где применяются?Ответ
Пример использования
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
В Python класс
collections.ChainMap
объединяет несколько словарей в одну структуру, позволяя искать ключи сразу во всех словарях. Это удобно для объединения настроек или конфигураций.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Функция
itertools.chain()
позволяет объединить несколько итерируемых объектов в один. Это полезно, когда нужно работать с несколькими списками или другими коллекциями без явной конкатенации.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Что такое
dataclass
в Python, как работает параметр init=False
и зачем он нужен?Ответ
Пример использования
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
и зачем он нужен?Ответ
Пример использования
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
В 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 👩💻
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 октября!
4–5 октября пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: пройти техническое собеседование, встретиться с лидами и получить офер.
Требования для бекэндеров – три года опыта коммерческой разработки, знание Java, Go, Python, C++.
Для ML-щиков – те же три года опыта + знания Classic ML, RecSys, NLP/LLM, CV, Speech.
Читайте подробности на сайте и подавайте заявку до 2 октября!
💔3
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
Использование изменяемых объектов (например, списков или словарей) в качестве значений по умолчанию для аргументов функции может привести к неожиданному поведению.
Значение по умолчанию (
[]
) создаётся один раз при определении функции и используется повторно для всех вызовов. Поэтому изменения сохраняются между вызовами функции.Используйте
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] — теперь всё работает правильно!
Избегайте изменяемых значений по умолчанию, чтобы не создавать неожиданных побочных эффектов.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6