This media is not supported in your browser
VIEW IN TELEGRAM
🦌 Уже дома, но в голове крутится мысль: "Сделал коммит, но есть один нюанс: в прод или в тест?"
✅ Мы в Max – подписывайся
✅ Мы в Max – подписывайся
😁5
🔥 Нашёл репозиторий, который заменит десятки книг по алгоритмам
TheAlgorithms/Python — один из крупнейших open-source проектов с реализациями алгоритмов и структур данных на Python.
🔗 GitHub
💡Это не просто набор кода, а полноценная образовательная база, где каждый алгоритм показывает, как он работает и почему именно так.
✅ Мы в Max – подписывайся
TheAlgorithms/Python — один из крупнейших open-source проектов с реализациями алгоритмов и структур данных на Python.
Внутри собрано всё, что должен знать разработчик:
⚫️ Сортировки и алгоритмы поиска;
⚫️ Структуры данных;
⚫️ Динамическое программирование;
⚫️ Графовые алгоритмы;
⚫️ Криптография;
⚫️ Машинное обучение;
⚫️ Компьютерное зрение;
⚫️ Математические алгоритмы;
⚫️ Backtracking и десятки других тем.
🔗 GitHub
💡Это не просто набор кода, а полноценная образовательная база, где каждый алгоритм показывает, как он работает и почему именно так.
✅ Мы в Max – подписывайся
🔥2
🔸 Создание словаря из двух списков с помощью dict() и zip()
zip() берет по одному элементу из каждого списка и объединяет их в пары.
Затем dict() превращает эти пары в словарь, где первый элемент пары становится ключом, а второй — значением.
Вывод:
Важно: если один список длиннее другого, zip() обработает только те элементы, для которых нашлась пара. Остальные будут проигнорированы.
✅ Мы в Max – подписывайся
zip() берет по одному элементу из каждого списка и объединяет их в пары.
Затем dict() превращает эти пары в словарь, где первый элемент пары становится ключом, а второй — значением.
x = ['name', 'age', 'country']
y = ['Yoko', 60, 'Angola']
dict1 = dict(zip(x, y))
print(dict1)
Вывод:
{'name': 'Yoko', 'age': 60, 'country': 'Angola'}Важно: если один список длиннее другого, zip() обработает только те элементы, для которых нашлась пара. Остальные будут проигнорированы.
✅ Мы в Max – подписывайся
👍1
🔔 Python Roadmap: структурированный план изучения Python (на основе официальной документации)
✅ Мы в Max – подписывайся
Если вы хотите изучить Python последовательно, лучше двигаться от базовых концепций к специализированным библиотекам.
✅ Мы в Max – подписывайся
❤1
🖥 Визуальное представление ключевых концепций, команд и структуры языка SQL
✅ Мы в Max – подписывайся
✅ Мы в Max – подписывайся
🔥2
🔥 Запускаем команды терминала прямо из Python с помощью subprocess
Иногда в скрипте нужно выполнить команду так же, как если бы вы ввели её в терминале. Для этого в стандартной библиотеке Python есть модуль subprocess.
С его помощью можно запускать внешние программы, получать их вывод и использовать его дальше в коде.
💡Если нужно проверить, что команда выполнилась успешно, добавьте check=True. В этом случае Python вызовет исключение, если процесс завершится с ошибкой.
✅ Мы в Max – подписывайся
Иногда в скрипте нужно выполнить команду так же, как если бы вы ввели её в терминале. Для этого в стандартной библиотеке Python есть модуль subprocess.
С его помощью можно запускать внешние программы, получать их вывод и использовать его дальше в коде.
Это особенно полезно для автоматизации, работы с системными утилитами и написания DevOps-скриптов.
💡Если нужно проверить, что команда выполнилась успешно, добавьте check=True. В этом случае Python вызовет исключение, если процесс завершится с ошибкой.
✅ Мы в Max – подписывайся
👍4
Первый день:
— О, отступы — это удобно!
Третий год:
— Кто смешал табы и пробелы, признавайтесь.
✅ Мы в Max – подписывайся
— О, отступы — это удобно!
Третий год:
— Кто смешал табы и пробелы, признавайтесь.
✅ Мы в Max – подписывайся
😁4
🔥 Большинство Python-разработчиков не использует эту встроенную команду
Когда нужно быстро поднять локальный сервер, многие начинают искать сторонние программы или настраивать Nginx. Хотя в Python всё уже есть.
Достаточно выполнить одну команду:
Что вы получите?
💡 Это один из тех инструментов стандартной библиотеки Python, который кажется простым, но способен сэкономить десятки минут в повседневной работе.
✅ Мы в Max – подписывайся
Когда нужно быстро поднять локальный сервер, многие начинают искать сторонние программы или настраивать Nginx. Хотя в Python всё уже есть.
Достаточно выполнить одну команду:
python -m http.server 8080
Что вы получите?
✅ Локальный HTTP-сервер за пару секунд.
📂 Доступ к файлам из текущей директории.
🌐 Возможность открыть проект в браузере по адресу http://localhost:8080.
📱 Доступ к серверу с телефона или другого компьютера по локальному IP, если устройства находятся в одной сети.
💡 Это один из тех инструментов стандартной библиотеки Python, который кажется простым, но способен сэкономить десятки минут в повседневной работе.
✅ Мы в Max – подписывайся
🔥3👍2
❗️ Проверяем Python-код без запуска программы
Иногда нужно просто убедиться, что в файле нет синтаксических ошибок, не запуская сам код. Для этого в Python есть встроенный модуль py_compile.
Достаточно выполнить команду:
где
💡Это особенно полезно, когда программа выполняет долгие или ресурсоемкие операции, а вам нужно лишь проверить корректность синтаксиса.
✅ Мы в Max – подписывайся
Иногда нужно просто убедиться, что в файле нет синтаксических ошибок, не запуская сам код. Для этого в Python есть встроенный модуль py_compile.
Достаточно выполнить команду:
python -m py_compile yourfile.py
где
yourfile.py — имя файла, который нужно проверить.Если найдены синтаксические ошибки, Python покажет их описание. Если всё в порядке — команда завершится без вывода.
💡Это особенно полезно, когда программа выполняет долгие или ресурсоемкие операции, а вам нужно лишь проверить корректность синтаксиса.
✅ Мы в Max – подписывайся
👍3
🔥 Нашёл отличный репозиторий со шпаргалками для разработчиков
Если не хочется каждый раз искать синтаксис или вспоминать команды — загляните сюда.
В репозитории собраны краткие шпаргалки по Python, Git, SQL, Docker, Bash, RegEx, JavaScript, HTTP-кодам, REST и другим полезным темам.
🔗 GitHub
💡Можно добавить в закладки и использовать как быстрый справочник во время разработки.
✅ Мы в Max – подписывайся
Если не хочется каждый раз искать синтаксис или вспоминать команды — загляните сюда.
В репозитории собраны краткие шпаргалки по Python, Git, SQL, Docker, Bash, RegEx, JavaScript, HTTP-кодам, REST и другим полезным темам.
🔗 GitHub
💡Можно добавить в закладки и использовать как быстрый справочник во время разработки.
✅ Мы в Max – подписывайся
🔥1
🔸В Python можно кешировать вычисляемые свойства объекта
Если вычисление свойства занимает время, не обязательно хранить отдельный _cache и писать проверки.
В Python для этого есть
При следующих обращениях возвращается уже сохранённое значение без повторного вызова функции.
💡Отлично подходит для дорогих вычислений: ORM, парсинга, конфигурации, работы с API и других сценариев, где значение достаточно получить один раз.
✅ Мы в Max – подписывайся
Если вычисление свойства занимает время, не обязательно хранить отдельный _cache и писать проверки.
В Python для этого есть
@cached_property из functools.from functools import cached_property
class User:
@cached_property
def profile(self):
...
При следующих обращениях возвращается уже сохранённое значение без повторного вызова функции.
user.profile
user.profile # вычисление больше не выполняется
💡Отлично подходит для дорогих вычислений: ORM, парсинга, конфигурации, работы с API и других сценариев, где значение достаточно получить один раз.
✅ Мы в Max – подписывайся
👍2
🔵Как выбрать данные из двух таблиц в SQL
Когда что использовать?
❗️ Все JOIN'ы, кроме CROSS, требуют правильных индексов на связующих полях!
✅ Мы в Max – подписывайся
Когда что использовать?
✔ INNER – нужны только связанные данные
✔ LEFT/RIGHT – нужны все записи из одной таблицы + связанные
✔ FULL – нужна полная картина из обеих таблиц
✔ CROSS – генерация всех возможных комбинаций
❗️ Все JOIN'ы, кроме CROSS, требуют правильных индексов на связующих полях!
✅ Мы в Max – подписывайся
❤3
🔶 Как Python ломает классические графы
HyperNetX — библиотека для Python, которая работает с гиперграфами.
HyperNetX помогает создавать, анализировать и визуализировать гиперграфы, работать с метаданными и данными из Pandas.
Установка:
Библиотека подходит для анализа сетей, исследований и задач Data Science.
✅ Мы в Max – подписывайся
HyperNetX — библиотека для Python, которая работает с гиперграфами.
В обычном графе ребро соединяет 2 узла, а в гиперграфе — любое их число.
Это удобно для моделирования сложных связей.
HyperNetX помогает создавать, анализировать и визуализировать гиперграфы, работать с метаданными и данными из Pandas.
Установка:
pip install hypernetx
Библиотека подходит для анализа сетей, исследований и задач Data Science.
✅ Мы в Max – подписывайся
👍3
🔵 Методы словаря Python
✅ Мы в Max – подписывайся
Словари в Python — это изменяемые структуры данных, которые хранят пары ключ-значение.
✅ Мы в Max – подписывайся
❤1
❗️Не храните секреты в Git
В Python-проектах часто случайно попадают в репозиторий .env, SECRET_KEY, токены Telegram-ботов, API-ключи OpenAI, AWS и другие секреты.
Один коммит — и они уже остаются в истории Git, даже если файл потом удалить.
Gitleaks помогает находить такие утечки в Git-репозиториях до публикации кода.
Установка:
Полезные команды:
🔗 GitHub
Найти утечку до публикации проще, чем исправлять её после.
✅ Мы в Max – подписывайся
В Python-проектах часто случайно попадают в репозиторий .env, SECRET_KEY, токены Telegram-ботов, API-ключи OpenAI, AWS и другие секреты.
Один коммит — и они уже остаются в истории Git, даже если файл потом удалить.
Gitleaks помогает находить такие утечки в Git-репозиториях до публикации кода.
Установка:
# macOS
brew install gitleaks
# Docker
docker pull zricethezav/gitleaks
Полезные команды:
# Проверить текущий репозиторий
gitleaks detect --source . -v
# Проверить конкретный коммит
gitleaks detect --source . --log-opts="-1 <commit_hash>"
🔗 GitHub
Найти утечку до публикации проще, чем исправлять её после.
✅ Мы в Max – подписывайся
❤2🔥1
🔸Pydantic и вложенные модели: как найти ошибку в глубине данных
Чем глубже структура, тем сложнее понять, где именно возникла ошибка валидации. Pydantic упрощает поиск: при сбое он сразу показывает путь к проблемному полю, поэтому не нужно вручную просматривать весь объект.
Например:
Здесь Pydantic выбросит ValidationError и укажет путь profile.age, а также причину — строку "twenty" нельзя преобразовать в целое число.
💡Это особенно удобно при работе с большими JSON-документами и ответами API: ошибка находится сразу, без долгого поиска по всей структуре.
✅ Мы в Max – подписывайся
Чем глубже структура, тем сложнее понять, где именно возникла ошибка валидации. Pydantic упрощает поиск: при сбое он сразу показывает путь к проблемному полю, поэтому не нужно вручную просматривать весь объект.
Например:
from pydantic import BaseModel
class Profile(BaseModel):
age: int
class User(BaseModel):
profile: Profile
User(profile={"age": "twenty"})
Здесь Pydantic выбросит ValidationError и укажет путь profile.age, а также причину — строку "twenty" нельзя преобразовать в целое число.
💡Это особенно удобно при работе с большими JSON-документами и ответами API: ошибка находится сразу, без долгого поиска по всей структуре.
✅ Мы в Max – подписывайся
👍3
🔥2👍1
📣 Хватит использовать with только для open()
Многие знакомы с конструкцией with только на примере работы с файлами, но область её применения гораздо шире.
С помощью декоратора
Результат:
💡Такой подход удобно использовать для логирования, измерения времени выполнения и работы с ресурсами.
✅ Мы в Max – подписывайся
Многие знакомы с конструкцией with только на примере работы с файлами, но область её применения гораздо шире.
С помощью декоратора
@contextmanager из модуля contextlib можно быстро создавать собственные контекстные менеджеры для действий до и после блока кода.from contextlib import contextmanager
@contextmanager
def step(name):
print(f"Start {name}")
yield
print(f"End {name}")
with step("Download"):
print("Downloading...")
Результат:
Start Download
Downloading...
End Download
💡Такой подход удобно использовать для логирования, измерения времени выполнения и работы с ресурсами.
@contextmanager позволяет обойтись без отдельного класса с методами __enter__() и __exit__().✅ Мы в Max – подписывайся
👍4