Pro Python • IT
4.17K subscribers
1.46K photos
148 videos
45 files
1.41K links
Pro Python — авторский канал с полезными советами, материалами и новостями по Python-программированию.

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

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

locals() возвращает словарь с локальными переменными текущей области видимости.

def example():
x = 10
name = "Python"
print(locals())

example()
# {'x': 10, 'name': 'Python'}


Полезно при отладке: можно быстро увидеть значения всех локальных переменных в конкретной точке выполнения.

⚠️ Используйте locals() для диагностики, а не для изменения переменных.

✅ Мы в Max – подписывайся
👍1😁1
💡Запускаем Python-код… без Python!

Если на компьютере нет Python, код можно отправить на удалённый сервер:

fetch("https://pythonsandbox.dev/run", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({code: "print('Привет!')"})
})
.then(r => r.json())
.then(data => console.log(data.output));


Код выполняется на сервере, а результат возвращается в браузер.

⚠️ Не отправляйте туда пароли, токены и другие секретные данные.

✅ Мы в Max – подписывайся
👍2
🫥 Среди разработчиков появился новый термин — «кукодинг». Так называют подход, когда ты передаёшь проект ИИ, а сам лишь наблюдаешь за тем, как он его пишет.

✅ Мы в Max – подписывайся
😁6🔥2
📣 Python 3.15 вышел в виде предварительной версии (pre-release)

По ссылке ниже вы можете почитать о том, что в него добавили, и сравнить его с версией 3.14:
https://docs.python.org/ru/3.15/whatsnew/3.15.html

✅ Мы в Max – подписывайся
👍1
automatic install_@PythonTechCode.py
493 B
☝🏼Исходный код для автоматической установки библиотек

Добавьте этот скрипт в начало вашей программы на Python, и теперь при её запуске в любой системе необходимые библиотеки установятся автоматически, если они ещё не установлены!

✅ Мы в Max – подписывайся
❤2
🌍 Полезная Python-библиотека за 30 секунд: tzlocal

Нужно узнать часовой пояс, установленный на компьютере или сервере? Не разбирайтесь вручную с настройками ОС.

tzlocal определяет локальную таймзону автоматически:
from tzlocal import get_localzone_name

print(get_localzone_name())
# Europe/Moscow


А если нужен объект zoneinfo:
from tzlocal import get_localzone

tz = get_localzone()
print(tz)


Установка библиотеки:
pip install tzlocal


💻 GitHub

💡Полезно для приложений, которые работают на разных ОС и серверах с разными настройками времени.

✅ Мы в Max – подписывайся
👍2
☝🏼Оказывается, Python умеет не только считать и анализировать схемы, но и рисовать их

Библиотека schemdraw позволяет описывать электрическую схему обычным Python-кодом.

Вместо ручного рисования получаем аккуратную схему прямо из кода:
import schemdraw
import schemdraw.elements as elm

with schemdraw.Drawing():
elm.Resistor().right().label('1Ω')
elm.Capacitor().down().label('10µF')
elm.Line().left()
elm.SourceSin().up().label('10V')


Резисторы, конденсаторы, источники сигнала и соединения собираются из готовых элементов.

Установка библиотеки:
pip install schemdraw


✅ Мы в Max – подписывайся
🔥3
🐍 Совет по Python: field(init=False)

В dataclass иногда нужно поле, которое не должно передаваться в __init__, а вычисляется автоматически.

Для этого используется field(init=False):
from dataclasses import dataclass, field

@dataclass
class Rectangle:
width: int
height: int
area: int = field(init=False)

def __post_init__(self):
self.area = self.width * self.height


Теперь area не нужно указывать при создании объекта:
rectangle = Rectangle(10, 5)

print(rectangle.area) # 50

area автоматически рассчитывается после создания объекта.

💡 Такой подход удобен для вычисляемых атрибутов, значение которых зависит от других полей объекта.

✅ Мы в Max – подписывайся
👍5
Media is too big
VIEW IN TELEGRAM
🫥 Эту сторону AI вам предпочитают не показывать

✅ Мы в Max – подписывайся
👍2
🕓 Автоматическая метка времени при добавлении записей в БД

В каждой модели часто нужны поля created_at и updated_at. Заполнять их вручную при каждом INSERT и UPDATE — лишняя рутина.

В SQLAlchemy это можно автоматизировать:
from sqlalchemy import Column, DateTime, func
from sqlalchemy.orm import declarative_base

Base = declarative_base()

class User(Base):
__tablename__ = "users"

id = Column("id", primary_key=True)
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())

Теперь база данных сама проставит время создания записи, а при её изменении updated_at получит новое значение.

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

✅ Мы в Max – подписывайся
❤3
☝🏼 Удобное логирование запросов в консоль

Когда приложение растет, print() для отладки уже перестает справляться — нам нужно полноценное логирование.

В Python встроен отличный модуль logging, который позволяет сделать вывод информации красивым и гибким.

Вместо стандартного вывода настроим базовую конфигурацию:
import logging
# Настройка логирования
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
logging.info("Приложение запущено ✅")
logging.warning("Предупреждение: что-то не так!")
logging.error("Ошибка: соединение потеряно 🚨")


💡Заменяй print() на logging — так ты получишь более наглядный, управляемый и профессиональный вывод в консоли.

✅ Мы в Max – подписывайся
👍1
🔥Мгновенное объединение сотен CSV-файлов

Устали вручную склеивать данные из разных CSV? Этот лаконичный скрипт сделает всю работу за вас, создавая единый DataFrame из всех файлов в папке.

import pandas as pd
import glob

path = "path/to/csv/files/"
all_files = glob.glob(path + "*.csv")
df = pd.concat((pd.read_csv(f) for f in all_files), ignore_index=True)

print(f"Объединено {len(all_files)} файлов")
print(f"Размер итогового DataFrame: {df.shape}")


Добавьте ignore_index=True чтобы переиндексировать строки и избежать дублирования индексов. Для больших файлов используйте параметр chunksize в pd.read_csv() для экономии памяти.

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

✅ Мы в Max – подписывайся
🔥2❤1
🟨 История браузера в Python

Нужно получить историю посещённых сайтов программно? Для этого есть библиотека browser-history.

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

Установка:
pip install browser-history


Простой пример:
from browser_history import get_history

# Получаем историю
history = get_history().histories

for date, url in history:
print(date, url)


На выходе получаем пары дата/время + URL, которые можно дальше анализировать, фильтровать или сохранять в файл.

⚠️ Библиотека работает с локальными данными браузеров, поэтому доступ к истории зависит от ОС, браузера и его настроек.

✅ Мы в Max – подписывайся
❤1🔥1
⛔️ Как красиво игнорировать ошибки в Python

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

from contextlib import suppress

with suppress(FileNotFoundError):
open("nonexistent.txt")


Если файл не найден, FileNotFoundError будет проигнорирован, а программа продолжит выполнение.

❗️ Используйте suppress только для ожидаемых и безопасных исключений — иначе можно скрыть настоящую ошибку.

✅ Мы в Max – подписывайся
👍5
👉 Зеркало Python в MAX!

Без рекламы, навязчивых постов и VPN.
❤1
⌨️ Большая подборка тестовых заданий для IT

Здесь собраны реальные задачи от компаний для программистов, тестировщиков и других айтишников.

Особенно здорово раздел по Python — можно и к собесу подготовиться, и просто порешать для себя.

🌐 Ссылка

Всё на русском, много практики.

✅ Мы в Max – подписывайся
🔥1
🆘 Когда данных слишком много

Нужно найти дубликаты в логах, сравнить большие тексты или посчитать уникальных пользователей, не загружая миллионы записей в память?

Datasketch использует вероятностные алгоритмы, которые позволяют анализировать большие объёмы данных с минимальными затратами памяти и времени.

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


⚙️ Документация

Полезный инструмент для дедубликации, анализа логов и потоковых данных.

✅ Мы в Max – подписывайся
👍2
📣 Анонимные функции в Python

✅ Мы в Max – подписывайся
🔥1
🔥 ТОП-5 советов Junior-разработчику от Senior’а

Избегай дублирования кода
🔸 Выноси повторяющуюся логику в функции.

Пиши понятный код
🔸 Именуй переменные осмысленно, избегай «магических чисел».

Тестируй граничные случаи
🔸 Проверяй, как код поведёт себя при нулях, пустых строках и крайних значениях.

Оптимизируй с первого раза
🔸 Используй встроенные методы (join(), filter()) вместо «велосипедов».

Учись на Code Review
🔸 Принимай критику, задавай вопросы и разбирай чужой код.


💡Главное: Чем чище код сейчас — тем меньше «костылей» потом!

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