🧪 Microsoft представляет Pyrona — экспериментальный проект для безопасной конкуренции в Python!
🔧 Разработан в рамках Project Verona, Pyrona исследует, как принципы владения и управления памятью (в духе Rust) можно адаптировать для динамического языка, такого как Python.
🌀 Что такое Pyrona?
• Прототип модифицированного Python без GIL (Global Interpreter Lock)
• Использует идеи из Verona и FrankenScript — toy-языка с проверками владения и безопасности
• Вводит динамическое региональное владение и глубокую неизменяемость объектов
🚀 Зачем это нужно?
С приближением PEP 703 (Python без GIL) возникает угроза гонок данных. Pyrona предлагает решение:
✅ Безопасная многопоточность
✅ Динамические гарантии корректности
✅ Поддержка привычной экосистемы Python
🔍 Детали:
• Поддерживает эксперименты с субинтерпретаторами (PEP 684)
• Публикация на PLDI 2025: *Dynamic Region Ownership for Concurrency Safety*
• Активное участие Гвидо ван Россума и команды Faster CPython
🧠 Pyrona — это не продакшен-язык, а платформа для будущего безопасного и многопоточного Python.
🔗 Подробнее
🔗 Github
@pythonl
🔧 Разработан в рамках Project Verona, Pyrona исследует, как принципы владения и управления памятью (в духе Rust) можно адаптировать для динамического языка, такого как Python.
🌀 Что такое Pyrona?
• Прототип модифицированного Python без GIL (Global Interpreter Lock)
• Использует идеи из Verona и FrankenScript — toy-языка с проверками владения и безопасности
• Вводит динамическое региональное владение и глубокую неизменяемость объектов
🚀 Зачем это нужно?
С приближением PEP 703 (Python без GIL) возникает угроза гонок данных. Pyrona предлагает решение:
✅ Безопасная многопоточность
✅ Динамические гарантии корректности
✅ Поддержка привычной экосистемы Python
🔍 Детали:
• Поддерживает эксперименты с субинтерпретаторами (PEP 684)
• Публикация на PLDI 2025: *Dynamic Region Ownership for Concurrency Safety*
• Активное участие Гвидо ван Россума и команды Faster CPython
🧠 Pyrona — это не продакшен-язык, а платформа для будущего безопасного и многопоточного Python.
🔗 Подробнее
🔗 Github
@pythonl
👍15❤10🔥4
Работаешь с PDF в Python? Вот подборка лучших библиотек, которые помогут извлекать текст, редактировать, создавать и анализировать PDF-документы. Каждая из них имеет свои сильные стороны 👇
📌 PyPDF2 — для чтения, разделения, объединения, поворота и модификации PDF
🔗 https://github.com/py-pdf/pypdf
⛏ PDFMiner — извлекает текст, структуру и метаинформацию из PDF (в том числе со шрифтами и координатами)
🔗 https://github.com/pdfminer/pdfminer.six
📊 ReportLab — создание PDF-файлов с графиками, таблицами, стилями и вёрсткой
🔗 https://www.reportlab.com/opensource/
🌐 PyPDFium2 — быстрый рендеринг и извлечение изображений с помощью движка PDFium
🔗 https://pypi.org/project/pypdfium2/
🛠 pdfplumber — удобное извлечение текста, таблиц и координат объектов
🔗 https://github.com/jsvine/pdfplumber
📄 PyMuPDF (fitz) — быстрая и мощная библиотека для анализа, рендеринга и аннотирования PDF
🔗 https://github.com/pymupdf/PyMuPDF
Используй их вместе или по отдельности — в зависимости от того, нужно ли тебе распарсить текст, извлечь таблицу, отрендерить страницу или сгенерировать отчёт.
@pythonl
#Python #PDF #PyPDF2 #PDFMiner #ReportLab #pdfplumber #PyMuPDF #PyPDFium2 #DevTools #PythonDev #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤8🔥2
📌 Что умеет:
• Автоматически публикует записи из заданных групп ВК в Telegram
• Настраивается через файл
config.yaml
: логин/пароль или токен VK + данные Telegram API • Поддерживает прокси (SOCKS5) — для обхода блокировок
• Гибко настраиваемый интервал проверки новых постов (по умолчанию — 1 час)
• Фильтрует записи по чёрному списку и стоп-словам
• Добавляет заголовки и футеры с поддержкой Markdown
• Работает в Docker — легко разворачивается на сервере
TG_AutoPoster — готовое решение для автоматического кросспостинга из ВК в Telegram
▪ Github
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥6👍3
Представь структуру данных, которая:
• работает как
dict
— доступ по ключу • работает как
list
— доступ по индексу • сохраняет порядок вставки
• поддерживает
.index(key)
и .key_at(i)
📌 Задача: Реализуй класс
IndexedDict
, который делает всё это.🔍 Пример использования:
d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30
print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2
for k in d:
print(k, d[k]) # перебор по ключам
⚠️ Подвох:
• Просто наследовать
dict
не получится — d[0]
будет интерпретироваться как ключ, а не индекс • Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать
__iter__
, __getitem__
, __len__
и др.✅ Решение:
```python
from
class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []
def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]
def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value
def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]
def __iter__(self):
return iter(self._keys)
def __len__(self):
return len(self._data)
def index(self, key):
return self._keys.index(key)
def key_at(self, idx):
return self._keys[idx]
```
📈 Зачем это нужно:
• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных
Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤12🔥4
Руководство_по_ускорению_и_оптимизации_Python_кода.pdf
264.6 KB
Без лишней теории — только рабочие практики, которые используют разработчики в боевых проектах.
Внутри:
• Как искать bottleneck'и и профилировать код
• Где и когда использовать Numba, Cython, PyPy
• Ускорение Pandas, NumPy, переход на Polars
• Асинхронность, кеши, JIT, сборка, автопрофилировка — всё по полочкам
• Только нужные инструменты: scalene, py-spy, uvloop, Poetry, Nuitka
⚙️ Написано просто, чётко и с прицелом на production.
📌 Полная версия онлайн
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥5😁3
🎙️ Voice Extractor — мощный open-source инструмент для извлечения и разметки голоса из многофайлового аудио
Если у тебя есть подкасты, интервью или многоголосые записи — этот инструмент выделит каждого говорящего и превратит всё в чистые датасеты для TTS или анализа.
🔧 Что умеет:
• Диаризация: разделение голосов с помощью Pyannote
• Удаление перекрытий: исключает участки с одновременной речью
• Транскрипция: генерирует текст аудио
• Изоляция голоса: можно вырезать только одного говорящего
• Многоязычность: работает не только с английским
🎯 Зачем использовать:
• Создание кастомных TTS-моделей
• Анализ подкастов, лекций и интервью
• Построение голосовых ассистентов
🚀 Как запустить:
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@pythonl
Если у тебя есть подкасты, интервью или многоголосые записи — этот инструмент выделит каждого говорящего и превратит всё в чистые датасеты для TTS или анализа.
🔧 Что умеет:
• Диаризация: разделение голосов с помощью Pyannote
• Удаление перекрытий: исключает участки с одновременной речью
• Транскрипция: генерирует текст аудио
• Изоляция голоса: можно вырезать только одного говорящего
• Многоязычность: работает не только с английским
🎯 Зачем использовать:
• Создание кастомных TTS-моделей
• Анализ подкастов, лекций и интервью
• Построение голосовых ассистентов
🚀 Как запустить:
git clone https://github.com/ReisCook/Voice_Extractor.git
cd Voice_Extractor
pip install -r requirements.txt
python extract_voice.py --file_path your_audio_file.mp3
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@pythonl
❤8👍6🔥3
🐍 Python-библиотеки для Linux-администраторов
Набор must-have инструментов, которые помогут автоматизировать системные задачи, управлять файлами, процессами и сетью:
🔸
https://docs.python.org/3/library/os.html
🔸
https://docs.python.org/3/library/subprocess.html
🔸
https://pypi.org/project/psutil/
🔸
https://docs.python.org/3/library/platform.html
🔸
https://docs.python.org/3/library/socket.html
🔸
https://docs.python.org/3/library/pwd.html
🔸
https://docs.python.org/3/library/pathlib.html
🔸
https://docs.python.org/3/library/shutil.html
🔸
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@pythonl
Набор must-have инструментов, которые помогут автоматизировать системные задачи, управлять файлами, процессами и сетью:
🔸
os
— работа с файловой системой, путями, переменными окружения https://docs.python.org/3/library/os.html
🔸
subprocess
— запуск внешних команд и управление ими https://docs.python.org/3/library/subprocess.html
🔸
psutil
— мониторинг процессов, ресурсов, дисков, сети https://pypi.org/project/psutil/
🔸
platform
— информация об ОС, архитектуре, версии Python https://docs.python.org/3/library/platform.html
🔸
socket
— сетевые соединения и сокеты https://docs.python.org/3/library/socket.html
🔸
pwd
— доступ к информации о пользователях Unix https://docs.python.org/3/library/pwd.html
🔸
pathlib
— удобная работа с путями в ООП-стиле https://docs.python.org/3/library/pathlib.html
🔸
shutil
— копирование, удаление, архивация файлов и директорий https://docs.python.org/3/library/shutil.html
🔸
tarfile
— создание и извлечение `.tar`-архивов https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@pythonl
👍30❤8🔥4
🎯 5 ИИ-проектов, которые ты можешь собрать за выходные
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд — и добавь проекты в резюме: «AI developer: checked»
@pythonl
Хочешь прокачать навыки ML и Python без математики и Kaggle? Лови 5 готовых идей, которые можно собрать за 1–2 дня:
🔹 Голосовой ассистент — Whisper + GPT + озвучка
🔹 Чат-бот для PDF — LangChain + FAISS + OpenAI
🔹 Генератор картинок — Stable Diffusion + Gradio
🔹 Подписи к фото — BLIP + HuggingFace
🔹 TL;DR бот — BART или GPT для суммаризации текста
✅ Примеры кода
✅ Деплой на HuggingFace / Streamlit
✅ Всё реально собрать за выходные
📎 Забирай гайд — и добавь проекты в резюме: «AI developer: checked»
@pythonl
❤19👍10🔥5😁1
🐍 Ошибка с изменяемыми значениями по умолчанию»**
🎯 Цель: Найти и объяснить баг, который не вызывает исключений, но ломает логику приложения
📍 Ситуация:
У тебя есть функция, которая логирует события с метаданными. По умолчанию метаданные можно не передавать:
На первый взгляд — всё работает. Но при многократных вызовах функции происходит что-то странное:
👀 Вывод:
🔍 Что пошло не так? Почему
🧩 Задача:
1. Найди и объясни источник бага
2. Почему Python не выбрасывает ошибку?
3. Как проверить, что дефолтный аргумент сохраняет состояние между вызовами?
4. Как это исправить безопасно и "по питоновски"?
5. Где ещё может проявиться аналогичный эффект?
🛠 Разбор и решение:
🔸 Причина:
Изменяемое значение (`dict`) используется как значение по умолчанию.
В Python значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
То есть создаётся один раз и сохраняется между вызовами, если параметр не передан.
🔸 Проверка:
Вы увидишь одинаковые — значит, используется тот же объект.
🔸 Решение (правильный способ):
Теперь при каждом вызове создаётся новый словарь, и не "протекает" в следующие вызовы.
🔸 Где ещё встречается:
- Списки:
- Множества:
- Объекты пользовательских классов
📌 Вывод:
Изменяемые значения по умолчанию — одна из самых частых ошибок в Python. Она не вызывает исключений, но может незаметно повредить данные. Всегда используй + инициализацию внутри функции для изменяемых типов.
@pythonl
🎯 Цель: Найти и объяснить баг, который не вызывает исключений, но ломает логику приложения
📍 Ситуация:
У тебя есть функция, которая логирует события с метаданными. По умолчанию метаданные можно не передавать:
def log_event(event, metadata={}):
metadata["event"] = event
print(metadata)
На первый взгляд — всё работает. Но при многократных вызовах функции происходит что-то странное:
log_event("start")
log_event("stop")
log_event("error", {"code": 500})
log_event("retry")
👀 Вывод:
{'event': 'start'}
{'event': 'stop'}
{'code': 500, 'event': 'error'}
{'code': 500, 'event': 'retry'}
🔍 Что пошло не так? Почему
code: 500
появляется там, где его быть не должно?🧩 Задача:
1. Найди и объясни источник бага
2. Почему Python не выбрасывает ошибку?
3. Как проверить, что дефолтный аргумент сохраняет состояние между вызовами?
4. Как это исправить безопасно и "по питоновски"?
5. Где ещё может проявиться аналогичный эффект?
🛠 Разбор и решение:
🔸 Причина:
В Python значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
То есть
metadata={}
🔸 Проверка:
def f(d={}):
print(id(d))
d["x"] = 1
print(d)
f()
f()
Вы увидишь одинаковые
id(d)
🔸 Решение (правильный способ):
def log_event(event, metadata=None):
if metadata is None:
metadata = {}
metadata["event"] = event
print(metadata)
Теперь при каждом вызове создаётся новый словарь, и
code: 500
🔸 Где ещё встречается:
- Списки:
items=[]
- Множества:
visited=set()
- Объекты пользовательских классов
📌 Вывод:
Изменяемые значения по умолчанию — одна из самых частых ошибок в Python. Она не вызывает исключений, но может незаметно повредить данные. Всегда используй
None
@pythonl
❤14👍9🔥7
🕵️♂️ ExeRay — статический анализатор PE-файлов на Python
ExeRay — это удобный инструмент для реверс-инженеров, исследователей безопасности и malware-аналитиков.
Он проводит статический анализ исполняемых файлов
🧩 Что умеет ExeRay:
✅ Анализировать PE-файл и извлекать:
- Заголовки, секции, импорты/экспорты
- Таблицы ресурсов
- Используемые API и библиотеки
- Suspicious patterns и аномалии
✅ Генерировать отчёт в HTML
✅ Работает полностью офлайн
✅ Поддержка анализа несколькими методами (pefile + custom парсеры)
📦 Пример использования:
После чего ты получаешь красивый и подробный отчёт по всем ключевым параметрам PE-файла.
💻 Технологии:
- Python 3
-
- Простая CLI и понятный код — легко расширить под свои задачи
🧠 Кому подойдёт:
- Reverse Engineers
- Malware Analysts
- Red/Blue Teams
- Python-разработчикам, интересующимся PE-структурой и безопасностью
🔥 Если ты работаешь с
📁 Репозиторий:
@pythonl
ExeRay — это удобный инструмент для реверс-инженеров, исследователей безопасности и malware-аналитиков.
Он проводит статический анализ исполняемых файлов
.exe
(PE-файлов) и визуализирует их структуру в удобной форме.🧩 Что умеет ExeRay:
✅ Анализировать PE-файл и извлекать:
- Заголовки, секции, импорты/экспорты
- Таблицы ресурсов
- Используемые API и библиотеки
- Suspicious patterns и аномалии
✅ Генерировать отчёт в HTML
✅ Работает полностью офлайн
✅ Поддержка анализа несколькими методами (pefile + custom парсеры)
📦 Пример использования:
python main.py -f malware.exe
После чего ты получаешь красивый и подробный отчёт по всем ключевым параметрам PE-файла.
💻 Технологии:
- Python 3
-
pefile
, matplotlib
, pyvis
для графов зависимостей - Простая CLI и понятный код — легко расширить под свои задачи
🧠 Кому подойдёт:
- Reverse Engineers
- Malware Analysts
- Red/Blue Teams
- Python-разработчикам, интересующимся PE-структурой и безопасностью
🔥 Если ты работаешь с
.exe
, и хочешь быстро понять, что внутри — ExeRay сэкономит часы ручного анализа.📁 Репозиторий:
@pythonl
❤12👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Набор симуляций физических явлений, написанных на Python с использованием Pygame. Эти симуляции создавались в образовательных целях и охватывают различные концепции, включая:
- Законы Ньютона
- Гравитацию
- Силы и трение
- Простую гармоническую модуляцию
- И многое другое
Для запуска симуляций необходимо установить зависимости:
pip install -r requirements.txt
Затем можно запустить нужный скрипт напрямую, например:
python gravity_sim.py
Каждый файл представляет отдельную симуляцию, сопровождаемую визуализацией с помощью Pygame.
📌 Github
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤13👍5🎉1
🤖 ReasonFlux-Coder — ИИ, который пишет код и сразу проверяет его
Новая серия моделей от команды ReasonFlux научилась не только писать код, но и автоматически генерировать юнит-тесты.
Это стало возможно благодаря их алгоритму CURE — модель учится программировать и проверять себя одновременно.
💡 Что внутри:
🧠 ReasonFlux-Coder-7B и 14B
Пишут код лучше, чем другие модели такого же размера: Qwen Coders, DeepSeek, Seed-Coders.
Без проблем работают в пайплайнах с агентами и умеют масштабироваться на этапе запуска.
🧪 ReasonFlux-Coder-4B (Long-CoT)
Модель с расширенным рассуждением (Chain-of-Thought).
• Обходит Qwen3-4B
• Создаёт юнит-тесты с эффективностью 64.8%
• Может использоваться как reward-модель в обучении с подкреплением
📌 Зачем это нужно:
– для автотестирования кода
– для CICD пайплайнов
– для агентных систем, которые сами проверяют свои решения
📄 Подробности: https://huggingface.co/Gen-Verse/ReasonFlux-Coder-14B
@pythonl
Новая серия моделей от команды ReasonFlux научилась не только писать код, но и автоматически генерировать юнит-тесты.
Это стало возможно благодаря их алгоритму CURE — модель учится программировать и проверять себя одновременно.
💡 Что внутри:
🧠 ReasonFlux-Coder-7B и 14B
Пишут код лучше, чем другие модели такого же размера: Qwen Coders, DeepSeek, Seed-Coders.
Без проблем работают в пайплайнах с агентами и умеют масштабироваться на этапе запуска.
🧪 ReasonFlux-Coder-4B (Long-CoT)
Модель с расширенным рассуждением (Chain-of-Thought).
• Обходит Qwen3-4B
• Создаёт юнит-тесты с эффективностью 64.8%
• Может использоваться как reward-модель в обучении с подкреплением
📌 Зачем это нужно:
– для автотестирования кода
– для CICD пайплайнов
– для агентных систем, которые сами проверяют свои решения
📄 Подробности: https://huggingface.co/Gen-Verse/ReasonFlux-Coder-14B
@pythonl
❤9🔥8👍4
🚨 Атака на PyPI, npm и RubyGems: сотни вредоносных пакетов в официальных реестрах
🔍 Исследователи обнаружили массовую кампанию по размещению вредоносных библиотек в популярных экосистемах:
🧪 Что произошло:
• На npm опубликованы фейковые версии библиотек вроде Hardhat, крадущие приватные ключи и
• В PyPI появились клоны
• В RubyGems — более 700 пакетов, использующих тайпосквоттинг (`activesupportt`,
🎯 Цель — разработчики. Пакеты собирают:
– мнемоники
– приватные ключи
– конфиги AWS/GCP
– системную информацию
🛡 Что делать:
– Проверяй названия пакетов (тайпосквоттинг — главный приём)
– Запускай
– Используй виртуальные окружения и минимум прав
– Подпиши зависимости, где это возможно (например, через Sigstore)
📌 Подробнее
🔍 Исследователи обнаружили массовую кампанию по размещению вредоносных библиотек в популярных экосистемах:
🧪 Что произошло:
• На npm опубликованы фейковые версии библиотек вроде Hardhat, крадущие приватные ключи и
.env
• В PyPI появились клоны
requests
, urllib3
и др., с вредоносными вставками • В RubyGems — более 700 пакетов, использующих тайпосквоттинг (`activesupportt`,
httpartyy
и т.д.)🎯 Цель — разработчики. Пакеты собирают:
– мнемоники
– приватные ключи
– конфиги AWS/GCP
– системную информацию
🛡 Что делать:
– Проверяй названия пакетов (тайпосквоттинг — главный приём)
– Запускай
pip audit
, npm audit
, bundler audit
– Используй виртуальные окружения и минимум прав
– Подпиши зависимости, где это возможно (например, через Sigstore)
📌 Подробнее
❤15👍5🔥5😱3
This media is not supported in your browser
VIEW IN TELEGRAM
def paradox(n):
def f(x):
return ((x * x) % n + x) % n
slow = fast = 0
while True:
slow = f(slow)
fast = f(f(fast))
if slow == fast:
return slow
print(paradox(31337))
На первый взгляд — простой цикл с двумя указателями: slow и fast.
Но на деле это алгоритм Флойда ("заяц и черепаха"), используемый для нахождения цикла в псевдослучайной последовательности.
📌 Функция f(x):
Простая квадратичная функция, по сути — генератор псевдослучайных чисел по модулю n.
📌 Что происходит:
slow движется на 1 шаг за итерацию: f(x)
fast — на 2 шага: f(f(x))
Как только slow == fast, цикл найден — значит, последовательность начала повторяться.
🔍 Почему это парадокс?
Потому что вы начинаете с 0, вычисляете кучу якобы "случайных" значений, и внезапно обнаруживаете цикличность в хаосе.
Вы не знаете длину цикла, период или точку входа, но находите пересечение без хранения всей истории.
💡 Эта техника используется в:
криптографии (Pollard's rho для факторизации),
генерации чисел,
распознавании псевдопериодов,
хаотических системах.
🎯 Челлендж для продвинутых:
Измените f(x) на pow(x, 3, n) — как это повлияет на цикл?
Реализуйте поиск начала цикла и длины периода, используя Флойда + Брента.
Придумайте, как использовать это для взлома слабых генераторов случайных чисел.
🧠 Эта задача не просто про числа — она про границу между случайным и детерминированным.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤12👍6😱3
🎮 Учимся Python прямо в бою — в Steam бесплатно раздают CodeStrike!
Это не просто игра — это шпионский экшен, где ты решаешь всё кодом.
В CodeStrike ты — элитный агент, действующий в мире, захваченном ИИ и алчными корпорациями.
💻 Что тебя ждёт:
• Пишешь Python-код
• Ломаешь системы, обходишь ловушки, взрываешь и взламываешь
• Программируешь поведение героя в реальном времени
• Участвуешь в гонках, сражениях и выживании — только с помощью кода
Это как если бы *Metal Gear* встретился с *LeetCode* — но весело.
🐍 Прокачай Python, даже не замечая, как учишься.
⚡ Вкатиться можно здесь: https://store.steampowered.com/app/3444170/CodeStrike__Python_Practice_Adventure_Game/
@pythonl
Это не просто игра — это шпионский экшен, где ты решаешь всё кодом.
В CodeStrike ты — элитный агент, действующий в мире, захваченном ИИ и алчными корпорациями.
💻 Что тебя ждёт:
• Пишешь Python-код
• Ломаешь системы, обходишь ловушки, взрываешь и взламываешь
• Программируешь поведение героя в реальном времени
• Участвуешь в гонках, сражениях и выживании — только с помощью кода
Это как если бы *Metal Gear* встретился с *LeetCode* — но весело.
🐍 Прокачай Python, даже не замечая, как учишься.
⚡ Вкатиться можно здесь: https://store.steampowered.com/app/3444170/CodeStrike__Python_Practice_Adventure_Game/
@pythonl
🔥19❤7👍6
This media is not supported in your browser
VIEW IN TELEGRAM
import dis
def explain_bytecode(fn):
print(f"Анализ байткода функции: {fn.__name__}\n")
dis.dis(fn)
Пример:
def tricky(x):
return x * 2 + 1 if x > 0 else x - 1
explain_bytecode(tricky)
Этот хак показывает байткод Python-функции, позволяя заглянуть под капот интерпретатора. Используется для:
• отладки «странного» поведения функций
• анализа производительности на уровне Python VM
• изучения, как Python интерпретирует тернарные выражения, замыкания, генераторы и т. д.
Модуль dis встроен в стандартную библиотеку и часто игнорируется — но это мощный инструмент для продвинутых разработчиков и авторов интерпретаторов.
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥13👍7