🔵 Методы словаря 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
🦜 Методы списков Python
✅ Мы в Max – подписывайся
Комбинация этих методов позволяет эффективно работать со списками и упрощает решение задач, связанных с обработкой данных в Python.
✅ Мы в Max – подписывайся
👍2❤1
Media is too big
VIEW IN TELEGRAM
🟩 Шурик в матрице
✅ Мы в Max – подписывайся
Автор с помощью нейросетей создал фанатский ремейк, в котором герои советской комедии Операция «Ы» и другие приключения Шурика переносятся в атмосферу Матрица.
✅ Мы в Max – подписывайся
🔥3
🔷Почему в Python есть str и bytes?
Когда мы работаем с текстом, Python использует тип str:
Но компьютер хранит и передает данные в виде байтов. Поэтому перед отправкой по сети, записью в бинарный файл или работой с некоторыми API строку нужно преобразовать в bytes.
Для этого используется encode():
Чтобы снова получить обычную строку, применяется decode():
Запомнить просто:
🔹 str → bytes = encode()
🔹 bytes → str = decode()
💡Обычно используется кодировка utf-8. Главное — указывать одинаковую кодировку при преобразовании в обе стороны.
✅ Мы в Max – подписывайся
Когда мы работаем с текстом, 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 – подписывайся
👍2❤1
❗️Обнаружение уязвимостей с помощью Audit
В Python-проектах даже небольшая ошибка в коде может привести к проблемам с безопасностью. Найти такие места вручную сложно, особенно в больших приложениях.
🔗 GitHub
Поддерживается интеграция с Claude Pro.
✅ Мы в Max – подписывайся
В Python-проектах даже небольшая ошибка в коде может привести к проблемам с безопасностью. Найти такие места вручную сложно, особенно в больших приложениях.
Audit автоматизирует этот процесс. Несколько специализированных агентов одновременно анализируют код, перепроверяют результаты и оценивают, можно ли использовать найденную уязвимость на практике.
Если появляются новые зацепки, Audit продолжает проверку и формирует структурированный отчет.
🔗 GitHub
Поддерживается интеграция с Claude Pro.
✅ Мы в Max – подписывайся
❤1
🌟 Как легко конвертировать изображения в PDF
img2pdf - это библиотека Python, предназначенная для конвертации изображений в формат PDF.
🔵Она упрощает процесс создания PDF-файлов на основе изображений и может быть использована в различных проектах, где требуется динамическое создание PDF-документов.
Установка библиотеки:
🔵 Этот пример показывает основное использование img2pdf для создания PDF-файла из нескольких изображений.
✅ Мы в Max – подписывайся
img2pdf - это библиотека Python, предназначенная для конвертации изображений в формат PDF.
🔵Она упрощает процесс создания PDF-файлов на основе изображений и может быть использована в различных проектах, где требуется динамическое создание PDF-документов.
Установка библиотеки:
pip install img2pdf
🔵 Этот пример показывает основное использование img2pdf для создания PDF-файла из нескольких изображений.
✅ Мы в Max – подписывайся
👍1
👈 Правильный способ объединять строки в Python
Метод
Что важно знать:
Именно поэтому запись
✅ Мы в Max – подписывайся
Метод
join() объединяет элементы последовательности в одну строку.Что важно знать:
join()— это метод строки, поэтому он вызывается у строки-разделителя.
Разделителем может быть любая строка.
При объединении элементов указанный разделитель вставляется между ними.
Именно поэтому запись
", ".join(items) означает: объединить элементы items, используя строку ", " в качестве разделителя.✅ Мы в Max – подписывайся
🔥2
🔰 Проверка палиндромов на Python
Эта программа на Python проверяет, является ли заданное слово или фраза палиндромом (читается одинаково как слева направо, так и справа налево).
Пример вывода:
Является палиндромом
🟡Теперь вы можете использовать эту программу для проверки любых слов или фраз на палиндромность.
✅ Мы в Max – подписывайся
Эта программа на Python проверяет, является ли заданное слово или фраза палиндромом (читается одинаково как слева направо, так и справа налево).
def is_palindrome(text):
# Удаляем все непробельные символы и переводим текст в нижний регистр
clean_text = ''.join(char.lower() for char in text if char.isalnum())
# Сравниваем очищенный текст с его реверсированной версией
return clean_text == clean_text[::-1]
# Пример строки для проверки
text = "А роза упала на лапу Азора"
print("Является палиндромом:", is_palindrome(text))
Пример вывода:
Является палиндромом
: True🟡Теперь вы можете использовать эту программу для проверки любых слов или фраз на палиндромность.
✅ Мы в Max – подписывайся
👍1
⭐ Star patterns с использованием вложенных циклов
✅ Мы в Max – подписывайся
Представленные примеры демонстрируют, как с помощью простых вложенных циклов и базовых операторов печати в Python можно создавать разнообразные звездчатые узоры — от треугольников до пирамид.
✅ Мы в Max – подписывайся
❤2
®️ Схема работы с Git (системой контроля версий), которая визуализирует взаимодействие между локальным репозиторием и удаленным хранилищем.
✅ Мы в Max – подписывайся
✅ Мы в Max – подписывайся
❤1
🔥 SQL-запросы с различными типами соединений (JOIN)
🔘INNER JOIN: Возвращает только те записи, которые имеют соответствующие значения в обеих таблицах.
🟣LEFT JOIN (LEFT OUTER JOIN): Возвращает все записи из левой таблицы (TABLE_A) и соответствующие записи из правой таблицы (TABLE_B).
🟡RIGHT JOIN (RIGHT OUTER JOIN): Противоположен LEFT JOIN. Возвращает все записи из правой таблицы (TABLE_B) и соответствующие записи из левой таблицы (TABLE_A).
🔴FULL OUTER JOIN: Возвращает записи, когда есть совпадения в одной из таблиц.
✅ Мы в Max – подписывайся
🔘INNER JOIN: Возвращает только те записи, которые имеют соответствующие значения в обеих таблицах.
Например, если есть совпадения по ключу, эти строки будут включены в результат.
🟣LEFT JOIN (LEFT OUTER JOIN): Возвращает все записи из левой таблицы (TABLE_A) и соответствующие записи из правой таблицы (TABLE_B).
Если совпадений нет, будут возвращены NULL значения для столбцов из правой таблицы.
🟡RIGHT JOIN (RIGHT OUTER JOIN): Противоположен LEFT JOIN. Возвращает все записи из правой таблицы (TABLE_B) и соответствующие записи из левой таблицы (TABLE_A).
Если совпадений нет, будут возвращены NULL значения для столбцов из левой таблицы.
🔴FULL OUTER JOIN: Возвращает записи, когда есть совпадения в одной из таблиц.
Это означает, что будут возвращены все записи из обеих таблиц с NULL значениями, когда нет совпадений.
✅ Мы в Max – подписывайся
❤3