Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month
🚀 Работаешь в Data Science? Заяви о себе на Data Fusion Contest 2025!
Data Fusion Contest 2025 это —
🔹возможность прокачать скилы на практике, внести вклад в развитие сообщества DS в России, а также погрузиться в новые DS/ML-методы;
🔹шанс сразиться с лучшими представителями профессии и проявить себя;
🔹возможность получить внушительный приз.
В этом году участников ждут 2 основные задачи:
«Label Craft» — про предсказание категории товаров.
«4 Cast» — про предсказание динамики платежей на последующие 12 недель.
И одна образовательная задача — «Distribution».
Победители смогут презентовать свои решения на конференции Data Fusion 2025 в кластере «Ломоносов».
Организаторы соревнования — ИТ-холдинг Т1 и ВТБ.
📆 Даты проведения соревнования: с 13 февраля по 7 апреля 2025 года.
➡️ Регистрируйся на соревнование прямо сейчас.
Покажи, на что ты способен! 🔥
Подробнее о рекламодателе
⚙️ sys.call_tracing()sys.call_tracing()
позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace()
. Это полезно для профилирования и отладки.
Python Learning 👩💻
⚙️ pathlib.Path.read_text()pathlib.Path.read_text()
— удобный способ прочитать содержимое текстового файла в строку. Этот метод автоматически открывает файл, читает его содержимое и закрывает его после чтения.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция enumerate() нумерует элементы списка. Параметр start=1 задаёт начало нумерации с 1, а не с 0, поэтому вывод будет 1 a, 2 b, 3 c. Код выполняется корректно.
❓ Вопрос на собеседовании
Как работает copy-on-write (COW) в Python и в каких случаях он применяется?
Ответ ⬇️
Copy-on-write (COW) — это оптимизация, при которой объект копируется только при попытке его изменения. В Python это особенно заметно при использовании fork() в многопроцессных программах: дочерний процесс получает копию памяти родительского процесса, но реальные копии данных создаются только при их изменении.
Это помогает эффективно использовать память при работе с процессами, но может привести к неожиданным накладным расходам, если изменять большие объёмы данных после fork().
Пример использования ⚙️
import os
data = [1] * 10**6 # Большой список
pid = os.fork()
if pid == 0: # Дочерний процесс
data[0] = 42 # Копирование происходит только здесь!
print("Дочерний процесс завершён")
else:
print("Родительский процесс")
⚙️ functools.singledispatch
Метод functools.singledispatch
позволяет создавать перегруженные функции на основе типа первого аргумента. Это полезно для написания обобщённого кода без сложных if isinstance(...)
.
Python Learning 👩💻
⚙️ threading.Timer()
Метод threading.Timer()
позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.
Python Learning 👩💻
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
⚙️ signal.setitimer()
Метод signal.setitimer()
позволяет устанавливать таймер, который автоматически отправляет сигнал процессу через заданные интервалы времени. Это полезно для периодического выполнения кода без создания потоков.
Python Learning 👩💻
⚙️ importlib.reload()
Метод importlib.reload()
позволяет повторно загрузить модуль во время выполнения программы. Это полезно для динамической перезагрузки кода без необходимости перезапуска интерпретатора.
Python Learning 👩💻
⚙️ sys._getframe()
Метод sys._getframe()
позволяет получить объект текущего или родительского стека вызовов. Это полезно для отладки, анализа кода и динамического доступа к локальным переменным.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Множество (set) в Python хранит только уникальные элементы, поэтому дубликаты 3 и 4 автоматически удаляются при создании numbers. Операция add(3) не изменяет множество, так как 3 уже в нём есть. Операция remove(2) удаляет 2 из множества. Код выполняется корректно.
🚫 Антипаттерн недели: Использование range(len())
вместо enumerate()
В Python часто используют range(len(lst))
для итерации по списку с индексами, но это снижает читаемость кода и не является идиоматичным способом перебора элементов.
✔️ Используйте enumerate()
, который позволяет одновременно получать индекс и значение элемента, делая код более читаемым и питоничным.
Python Learning 👩💻
⚙️ __slots__
Метод __slots__
позволяет явно указать, какие атрибуты может иметь объект класса, что значительно уменьшает потребление памяти и ускоряет доступ к атрибутам. Это особенно полезно при создании большого количества экземпляров класса.
Python Learning 👩💻
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция map применяет лямбда-функцию lambda x: x ** 2 к каждому элементу списка numbers, возводя его в квадрат. Возвращается объект map, который преобразуется в список с помощью list(squared). Код выполняется корректно.
⌛ Что будет выведено при выполнении кода?
Пояснение ⬇️
Функция filter() применяет лямбда-функцию lambda x: x % 2 == 0, оставляя только чётные числа. В результате получаем [2, 4, 6]. Код выполняется корректно.
Тест: узнай свой грейд и зарплату
1. Переходи в бота ШОРТКАТ @shortcut_py_bot
2. Ответь на пару вопросов о своём опыте работы
3. В зависимости от опыта команда сервиса предложит формат оценки грейда — тестирование или полноценное мок-интервью с опытным ментором
4. После ты узнаешь свой грейд и з/п в рынке — на основе опыта разработчиков из бигтеха
Если опыта работы у тебя совсем нет, можно попробовать пройти, но лучше тест сработает на тех, кто уже работает в разработке.
Пройти тестирование в ШОРТКАТ ➡️ @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxDrfCh
⚙️ contextlib.ExitStackcontextlib.ExitStack
позволяет управлять несколькими контекстными менеджерами динамически.
Python Learning 👩💻
НЕ изи войти в айти! 😬
Тебя не бесят «гуру», которые обещают зп от 300к после двух недель на их легендарном курсе по Python за 150к? 😂 - Меня ДА!
Потому что, чтобы стать программистом, надо пропахать как чёрт за партой хотя бы годик!
А чтобы не свихнуться в одиночку, залетай в чат начинающих Python-щиков, где ты получишь:
1️⃣ Разбор сложных вопросов простым языком
2️⃣ Поддержку тех, кто тоже с 0 учит Python, и не боится показаться глупым
3️⃣ Регулярные плюшки в виде стримов от препода с 15-ти летним опытом
➡️А еще, в закрепе есть БЕСПЛАТНЫЙ вводный курс по Python, ну это так, к слову))
Короче, всё для прокачки! Залетай — ссылка на чат (тык)
⚙️ sys.setprofile()
Метод sys.setprofile()
позволяет установить функцию профилирования, которая вызывается при каждом вызове, возврате или исключении в Python-коде. Это полезно для отладки, анализа производительности и трассировки выполнения кода.
Python Learning 👩💻
Что спрашивают на собеседовании у Middle Python-разработчика?
Уже завтра, 11 февраля в 19:00 мск — бесплатное открытое собеседование в прямом эфире!
Интервьюер Савва Демиденко, ex. TechLead в Яндексе, Авито и другом русском бигтехе будет задавать реальные вопросы и задачи разработчику-добровольцу. В конце — время вопросов ментору из зала.
Что узнаешь на эфире:
✅ Какие вопросы задают на собеседованиях и зачем
✅ Как подготовиться, чтобы получить достойный оффер
✅ Чего ждут от кандидатов на Middle Python
Запишись на эфир в боте ШОРТКАТ → @shortcut_py_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqumRSUd
🚫 Антипаттерн недели: Использование mutable default arguments
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
✔️ Используйте None
в качестве значения по умолчанию и создавайте новый объект внутри функции.
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает cooperative multitasking
в Python, и почему asyncio не использует потоки?
Ответ ⬇️
В Python asyncio использует кооперативную многозадачность (cooperative multitasking), где задачи передают управление друг другу явно (await). Это отличается от потоков (threading), которые работают конкурентно, но ограничены GIL.
Асинхронность полезна для операций ввода-вывода (сетевые запросы, работа с файлами), так как позволяет одной задаче выполняться, пока другая ждёт результата.
Пример использования ⚙️
import asyncio
async def task(name, delay):
await asyncio.sleep(delay)
print(f"Задача {name} завершена")
async def main():
await asyncio.gather(task("A", 2), task("B", 1))
asyncio.run(main())
⚙️ sys.addaudithook()
Метод sys.addaudithook()
позволяет отслеживать определённые события в Python, такие как импорт модулей, вызовы системных функций и доступ к ресурсам. Это полезно для мониторинга безопасности и отладки.
Python Learning 👩💻
⚙️ gc.get_objects()
Метод gc.get_objects()
из модуля gc
позволяет получить список всех объектов, отслеживаемых сборщиком мусора в Python. Это полезно для анализа утечек памяти и отладки.
Python Learning 👩💻
⚙️ __import__()
Встроенная функция __import__()
позволяет динамически импортировать модули во время выполнения программы. Это полезно, когда имя модуля заранее неизвестно или зависит от условий.
Python Learning 👩💻
⚙️ dis.Bytecode()
Метод dis.Bytecode()
из модуля dis
позволяет анализировать байт-код Python-функций. Это полезно для оптимизации кода и понимания его работы на уровне интерпретатора.
Python Learning 👩💻
❓ Вопрос на собеседовании
Как работает weakref
в Python, и когда его стоит использовать?
Ответ ⬇️
Модуль weakref позволяет создавать слабые ссылки на объекты, которые не предотвращают их сборку мусора. Это полезно, когда нужно отслеживать объекты без продления их времени жизни, например, в кешах или при управлении зависимостями в больших структурах данных.
Пример использования ⚙️
import weakref
class Data:
def __del__(self):
print("Объект удалён")
obj = Data()
weak_ref = weakref.ref(obj)
print(weak_ref()) # <__main__.Data object at 0x...>
del obj
print(weak_ref()) # None (объект удалён)
Если бы вы купили TRUMP coin на старте на 1000$, то уже сейчас у вас бы было 130.000$
Только вдумайтесь: Утром покупаете монет на 1000$, а уже через день 1000$ превратилась в 130.000$. Неплохо, правда?
Чтобы быть в тренде – достаточно читать Максима Гусева
Там рассказывают кейсы, как с 1000$ колотят состояние, а не просирают все.
Если хотите разбираться в мире крипты, вам сюда: /channel/+fxR-tkBeKItjZjM6
⚙️ itertools.permutations()
Метод itertools.permutations()
генерирует все возможные перестановки элементов заданной последовательности. Это полезно для задач, связанных с комбинаторикой.
Python Learning 👩💻