Python/ django
58.8K subscribers
2.1K photos
66 videos
48 files
2.82K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🐍 Задача на Python: "Исчезающая цифра"

Условие:
У тебя есть список строк — чисел от 1 до 100, но одно из чисел случайно пропало.
Найди, какое число отсутствует. Нельзя использовать sum(), sorted(), Counter. Все числа в списке представлены как строки.

Пример:


import random

original = [str(i) for i in range(1, 101)]
missing = random.choice(original)
shuffled = original.copy()
shuffled.remove(missing)
random.shuffle(shuffled)


Напиши функцию:


def find_missing_number(data: list[str]) -> int:
...


📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:


a ^ a = 0
0 ^ b = b


То есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число.

🧠 Решение:

```python
def find_missing_number(data: list[str]) -> int:
xor_full = 0
xor_data = 0

for i in range(1, 101):
xor_full ^= i

for val in data:
xor_data ^= int(val)

return xor_full ^ xor_data
```

Пояснение:
-
xor_full — XOR всех чисел от 1 до 100.
-
xor_data — XOR всех чисел в текущем списке (`str` → `int`).
- Разность
xor_full ^ xor_data вернёт единственное отсутствующее число.

🎯 Пример использования:

```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)

print(find_missing_number(original)) # → 42
```

🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на
sum()
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+

@pythonl
🔍Тестовое собеседование на Middle Python-разработчика в четверг

22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Собес проведет Вадим Пуштаев, ex. head of backend в 💙, автор канала @pythonetc, архитектор в европейской компании

Как это будет:
📂 Вадим будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Вадим будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Вадиму

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwFUCLU
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 PyRoki — модульный инструмент для оптимизации кинематики роботов

На GitHub и в preprint на arXiv появилась новая работа от исследователей из Berkeley — PyRoki (Python Robot Kinematics Toolkit). Это мощный, гибкий и кроссплатформенный инструмент на Python для задач оптимизации в робототехнике.

🔧 Что такое PyRoki?


PyRoki — это:

- 📦 Модульная архитектура
Разделение переменных оптимизации и функций стоимости (costs) позволяет комбинировать задачи IK, планирования траектории, ретаргетинга и многое другое — без повторения кода.

- ⚙️ Дифференцируемая кинематика
Поддержка URDF-моделей, автоматическое создание collision-примитивов (например, капсул), работа с NumPy и JAX.

- 🚀 Поддержка CPU, GPU и TPU
Высокая производительность и масштабируемость на любых вычислительных устройствах.

- 🧠 Оптимизация на многообразиях (Lie-группы)
Встроенный алгоритм Levenberg–Marquardt даёт устойчивую и быструю сходимость даже для сложных конфигураций.

📊 Результаты

- Быстрее cuRobo на 1.4–1.7x при решении задач IK в батче.
- Более точные результаты при меньших вычислительных затратах.
- Интерактивный визуализатор (на базе `viser`) для отладки и анализа.

📁 Примеры использования

PyRoki включает в себя готовые сценарии:
- инверсная кинематика (IK)
- бимануальные манипуляции
- мобильные платформы
- ретаргетинг движений гуманоидов
- учёт столкновений
- online-планирование и управление

🚀 Установка


git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .


Требуется Python 3.12+ (частичная поддержка Python 3.10–3.11).

PyRoki — это:

- 📐 Удобный фреймворк для исследований в области робототехники.
- 🛠️ Подходит как для академических, так и для прикладных задач.
- 🌐 Гибкий и масштабируемый — от одного робота до больших motion-баз.

Если интересен пример интеграции с ROS, Gazebo или симуляцией цифрового двойника — дай знать, покажу!

🔗 Репозиторий

#Python #Robotics #Kinematics #InverseKinematics #MotionPlanning #OpenSource

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 AЭРОДИСК ищет Senior Python-разработчика для сложных и прокачивающих задач в разработке СХД!

Хочешь:
— Работать над репликацией, метрокластером и высоконагруженными системами?
— Глубоко погрузиться в Linux, сетевые протоколы и архитектуру ПО?
— Решать нетривиальные задачи, влияя на масштабные инфраструктурные решения?
— Прокачивать скилы в команде с крутыми инженерами и архитекторами?

📌 Нужно:
— Python (от 3 лет), Linux — экспертно
— Понимание сетей, репликации, системной архитектуры
— SQL/NoSQL, работа с техдокументацией на английском.

🧠 Прокачка:
— Живое общение, обучение за счёт компании, конференции
— Чёткий рост, внутренняя экспертиза, развитие в enterprise-инфраструктуре

💼 Офис в БЦ "Кругозор", соцпакет, гибкий график
👉 Подробнее и отклик

🔥 Скучно не будет — будет интересно и мощно.

Реклама. ООО "АЕРО ДИСК". ИНН 7731475010. erid: 2W5zFGsyf7E
🐍 Задача с подвохом: mutable default arguments в Python

🔹 Уровень: Advanced
🔹 Темы: изменяемые аргументы по умолчанию, функции, ловушки с list и dict

📌 Условие

Что выведет следующий код?


def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list

print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))


Вопросы

1. Почему результат выглядит неожиданно?
2. Как исправить это поведение?
3. Когда стоит использовать изменяемые аргументы по умолчанию — если вообще стоит?

🔍 Разбор

Ожидаемый вывод:

[1]
[1, 2]
[1, 2, 3]


🔧 Почему так происходит

- Аргументы по умолчанию вычисляются один раз — во время определения функции, а не при каждом вызове.
- Значение my_list=[] создаётся один раз и затем используется повторно при всех вызовах.
- Все вызовы append_to_list изменяют один и тот же список.

⚠️ Подвох

Это один из самых коварных багов в Python, особенно среди начинающих — кажется, что my_list должен быть новым на каждый вызов, но это не так.

🧠 Вывод

- Никогда не используй изменяемые типы (list, dict, set) как значения по умолчанию.
- Вместо этого используй None и создавай новый объект вручную:


def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list


Тогда вывод будет:

[1]
[2]
[3]


📌 Это правило относится ко всем изменяемым типам: [], {}, set() и кастомные классы.
🛡 StarGuard — умный аудит GitHub-репозиториев прямо из консоли

Открытый проект — это мощный CLI-инструмент на Python, который автоматически анализирует open-source репозитории и помогает выявить:

🔸 фальшивые звёзды
🔸 всплески активности
🔸 опасные зависимости
🔸 лицензии с подвохом
🔸 подозрительный код и токсичных контрибьюторов

📊 Что делает StarGuard

Обнаруживает аномалии звёзд
— Вычисляет резкие всплески популярности с помощью BurstDetector и медианного отклонения.
— Определяет подозрительных пользователей с «пустыми» профилями и новыми аккаунтами.

Анализирует зависимости и SBOM
— Поддержка PyPI, npm, Maven, Go, Ruby
— Предупреждает об unpinned-пакетах и git-зависимостях

Проверяет лицензии
— Выявляет несовместимости (например, AGPL внутри MIT)
— Предупреждает о скрытых ограничениях

Оценивает контрибьюторов
— Проверяет концентрацию коммитов
— Определяет "одиночек", на которых держится проект

Сканирует код на опасные паттерны
— Обнаруживает eval, скрытые майнеры, необфусцированные ключи

🚀 Как использовать


python -m starguard.cli owner/repo --format markdown --plot stars.png


🔹 Без GitHub-токена работает, но лимит — 60 запросов/час
🔹 С GITHUB_TOKEN — до 5000 запросов

🎯 Кому полезно

• DevOps-командам — для верификации OSS-зависимостей
• Безопасникам — для быстрой проверки на supply chain угрозы
• Инвесторам — чтобы не попасть на проекты с "накрученной" популярностью
• Open Source авторам — для прозрачности и Trust Badge

🔗 GitHub

💡 Инструмент, который показывает, что за красивыми графиками звёзд часто стоит маркетинг, а не код. Умей фильтровать — ставь охрану у репозитория.

@pythonl
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 DeerFlow — Open‑Source фреймворк для Deep Research от ByteDance

🌟 Что такое DeerFlow?

DeerFlow (Deep Exploration and Efficient Research Flow) — это модульный multi-agent фреймворк с открытым исходным кодом, созданный для автоматизации глубоких исследовательских процессов. Он сочетает работу с LLM, веб-поиск, краулинг и выполнение Python-кода :contentReference[oaicite:0]{index=0}.

🧱 Основные особенности

- Multi-agent архитектура
Координатор, Планировщик, Исследователь, Кодер, Репортер и даже голосовой модуль — каждый агент выполняет свою задачу в пайплайне исследования :contentReference[oaicite:1]{index=1}.

- Интеграция инструментов
Встроенный веб-поиск (Tavily, DuckDuckGo, Brave, arXiv), web scraping через Jina, Python REPL для исполнения кода, генерация отчетов и даже автоматизированные подкасты при помощи TTS :contentReference[oaicite:2]{index=2}.

- Human‑in‑the‑loop
Возможность ставить задачи и править планы вручную — обеспечивается контроль на каждом этапе :contentReference[oaicite:3]{index=3}.

- Генерация конечного контента
Полученные данные консолидируются в отчеты (Markdown, PPT), синтезируются в речь (подкасты), экспортируются — всё автономно.

⚙️ Github

@pythonl
🧪 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
🖥 Топ Python-библиотек для работы с PDF

Работаешь с 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
🚀 TG_AutoPoster — бот для автоматической пересылки постов из групп ВКонтакте в ваш Telegram: канал, чат или личку.

📌 Что умеет:
• Автоматически публикует записи из заданных групп ВК в 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
Устроиться аналитиком в Яндекс за выходные

7–8 июня проводим Weekend Offer Analytics. До 3 июня оставьте заявку на участие, 7 июня пройдите два технические собеседования, а 8 июня познакомьтесь с командами и получите офер.

В мероприятии участвует 12 команд: Алиса и Умные устройства, Игры, R&D, Рекламные технологии, Поиск и Суперапп, Безопасность, Коммерческий департамент, Автономный транспорт, Ecom-сценарии Поиска, Качество Поиска, Международный Поиск, Карты. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.

Узнать подробности и зарегистрироваться можно здесь.
🖥 Хитрая задача на Python для продвинутых: словарь, который работает как список

Представь структуру данных, которая:
• работает как 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
collections.abc import MutableMapping

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
Руководство_по_ускорению_и_оптимизации_Python_кода.pdf
264.6 KB
🖥 Гайд по ускорению Python, который реально стоит прочитать 🔥

Без лишней теории — только рабочие практики, которые используют разработчики в боевых проектах.

Внутри:
• Как искать 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
🎙️ Voice Extractor — мощный open-source инструмент для извлечения и разметки голоса из многофайлового аудио

Если у тебя есть подкасты, интервью или многоголосые записи — этот инструмент выделит каждого говорящего и превратит всё в чистые датасеты для 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
Хотите быстро создать своего Telegram-бота?

Например:
📊 Бота-аналитика, который собирает данные и строит отчеты
🤖 Бота-переводчика, который поможет общаться с зарубежными коллегами
🎬 Бота-киноэксперта, который подберет фильмы по настроению

Какого бы помощника вы ни хотели запустить, это можно легко сделать в облаке без настройки серверов и затрат на инфраструктуру.

Облачный провайдер Cloud․ru расскажет на бесплатном вебинаре 5 июня, как создать бота в облаке и какие компоненты для этого нужны.

Будет демо — в прямом эфире эксперт покажет процесс и ответит на вопросы.

Зарегистрироваться на вебинар🖱
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍 Python-библиотеки для Linux-администраторов

Набор 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
🎯 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
🐍 Ошибка с изменяемыми значениями по умолчанию»**

🎯 Цель: Найти и объяснить баг, который не вызывает исключений, но ломает логику приложения

📍 Ситуация:

У тебя есть функция, которая логирует события с метаданными. По умолчанию метаданные можно не передавать:


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. Где ещё может проявиться аналогичный эффект?


🛠 Разбор и решение:

🔸 Причина:
Изменяемое значение (`dict`) используется как значение по умолчанию.
В 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
🕵️‍♂️ ExeRay — статический анализатор PE-файлов на Python

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
Реально ли совмещать учёбу с работой и жизнью?

Совместный онлайн-бакалавриат НИУ ВШЭ и Нетологии как раз даёт такую возможность.
Обучение проходит полностью дистанционно, но в очной форме, а значит сохраняется отсрочка от армии, льготы на проезд, доступ к библиотеке и возможность взять образовательный кредит с господдержкой.

На первых курсах вы изучите базовые математические и гуманитарные предметы,
основы программирования и профильные дисциплины по фулстек-разработке.

А с третьего курса выберете углублённый трек: руководитель командой разработки или DevOps-инженер.
По итогу обучения освоите 4 языка программирования: Java, Python, JavaScript, Go.

Практики будет много — участие в хакатонах, командные проекты и возможность попасть на стажировку в Сбер по ускоренному треку.
Получите диплом, который поможет строить карьеру в сильных IT-командах.

Учитесь без отрыва от жизни: https://netolo.gy/ebKb

Реклама. ООО "Нетология". ИНН 7726464125 Erid: 2VSb5wZ53dr
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Physics Simulations

Набор симуляций физических явлений, написанных на Python с использованием Pygame. Эти симуляции создавались в образовательных целях и охватывают различные концепции, включая:

- Законы Ньютона
- Гравитацию
- Силы и трение
- Простую гармоническую модуляцию
- И многое другое

Для запуска симуляций необходимо установить зависимости:


pip install -r requirements.txt


Затем можно запустить нужный скрипт напрямую, например:


python gravity_sim.py


Каждый файл представляет отдельную симуляцию, сопровождаемую визуализацией с помощью Pygame.

📌 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM