Pro Python • IT
4.13K subscribers
1.4K photos
145 videos
42 files
1.36K links
Pro Python — авторский канал с полезными советами, материалами и новостями по Python-программированию.

Сотрудничество (реклама): @NotPriceMedia

Канал на бирже : https://telega.in/c/PythonTechCode
Download Telegram
🖥 Визуальное представление ключевых концепций, команд и структуры языка SQL

 Мы в Max – подписывайся
🔥2
🔥 Запускаем команды терминала прямо из Python с помощью subprocess

Иногда в скрипте нужно выполнить команду так же, как если бы вы ввели её в терминале. Для этого в стандартной библиотеке Python есть модуль subprocess.

С его помощью можно запускать внешние программы, получать их вывод и использовать его дальше в коде.
Это особенно полезно для автоматизации, работы с системными утилитами и написания DevOps-скриптов.


💡Если нужно проверить, что команда выполнилась успешно, добавьте check=True. В этом случае Python вызовет исключение, если процесс завершится с ошибкой.

 Мы в Max – подписывайся
👍4
Первый день:
— О, отступы — это удобно!
Третий год:
— Кто смешал табы и пробелы, признавайтесь.

 Мы в Max – подписывайся
😁4
🔥 Большинство Python-разработчиков не использует эту встроенную команду

Когда нужно быстро поднять локальный сервер, многие начинают искать сторонние программы или настраивать Nginx. Хотя в Python всё уже есть.

Достаточно выполнить одну команду:
python -m http.server 8080


Что вы получите?
Локальный HTTP-сервер за пару секунд.
📂 Доступ к файлам из текущей директории.
🌐 Возможность открыть проект в браузере по адресу http://localhost:8080.
📱 Доступ к серверу с телефона или другого компьютера по локальному IP, если устройства находятся в одной сети.


💡 Это один из тех инструментов стандартной библиотеки Python, который кажется простым, но способен сэкономить десятки минут в повседневной работе.

 Мы в Max – подписывайся
🔥3👍2
👇Исходный код
Rock paper scissor@pythontechcode.py
1.5 KB
💾 Игра «Камень, ножницы, бумага» на Python

 Мы в Max – подписывайся
🔥2
❗️ Проверяем Python-код без запуска программы

Иногда нужно просто убедиться, что в файле нет синтаксических ошибок, не запуская сам код. Для этого в 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 – подписывайся
🔥1
🔸В Python можно кешировать вычисляемые свойства объекта

Если вычисление свойства занимает время, не обязательно хранить отдельный _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

Когда что использовать?

INNER – нужны только связанные данные
LEFT/RIGHT – нужны все записи из одной таблицы + связанные
FULL – нужна полная картина из обеих таблиц
CROSS – генерация всех возможных комбинаций


❗️ Все JOIN'ы, кроме CROSS, требуют правильных индексов на связующих полях!

 Мы в Max – подписывайся
3
🔶 Как Python ломает классические графы

HyperNetX — библиотека для Python, которая работает с гиперграфами.

В обычном графе ребро соединяет 2 узла, а в гиперграфе — любое их число.
Это удобно для моделирования сложных связей.


HyperNetX помогает создавать, анализировать и визуализировать гиперграфы, работать с метаданными и данными из Pandas.

Установка:
pip install hypernetx


Библиотека подходит для анализа сетей, исследований и задач Data Science.

 Мы в Max – подписывайся
👍3
🔵 Методы словаря Python

Словари в Python — это изменяемые структуры данных, которые хранят пары ключ-значение.


 Мы в Max – подписывайся
1
❗️Не храните секреты в Git

В 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 упрощает поиск: при сбое он сразу показывает путь к проблемному полю, поэтому не нужно вручную просматривать весь объект.

Например:
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
🔥 Большая шпаргалка по SQL

Запросы с примерами и пояснениями к ним.

 Мы в Max – подписывайся
🔥2👍1
📣 Хватит использовать with только для open()

Многие знакомы с конструкцией 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
🦜 Методы списков Python

Комбинация этих методов позволяет эффективно работать со списками и упрощает решение задач, связанных с обработкой данных в Python.


 Мы в Max – подписывайся
👍21
Media is too big
VIEW IN TELEGRAM
🟩 Шурик в матрице

Автор с помощью нейросетей создал фанатский ремейк, в котором герои советской комедии Операция «Ы» и другие приключения Шурика переносятся в атмосферу Матрица.


 Мы в Max – подписывайся
🔥3
🔷Почему в Python есть str и bytes?

Когда мы работаем с текстом, Python использует тип str:
text = "Привет, Python!"


Но компьютер хранит и передает данные в виде байтов. Поэтому перед отправкой по сети, записью в бинарный файл или работой с некоторыми API строку нужно преобразовать в bytes.

Для этого используется encode():
data = text.encode("utf-8")
print(data)
# b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82, Python!'


Чтобы снова получить обычную строку, применяется decode():
result = data.decode("utf-8")
print(result)
# Привет, Python!


Запомнить просто:
🔹 str → bytes = encode()
🔹 bytes → str = decode()

💡Обычно используется кодировка utf-8. Главное — указывать одинаковую кодировку при преобразовании в обе стороны.

 Мы в Max – подписывайся
👍21