Набор основных инструментов для работы со строками: современные способы форматирования (f-строки, str.format, format, format_map), эффективные преобразования символов (maketrans, translate), проверка идентификаторов и методы выравнивания. Удобная шпаргалка для типовых задач подготовки и обработки текстовых данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍9🤝8❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Сохраняй если хочешь быстро находить лучшие библиотеки под любую задачу, от утилит и CLI-инструментов до фреймворков и сетевого программирования. Список обновляется еженедельно и содержит 390+ проектов, распределённых по 28 категориям. Все библиотеки ранжированы по качеству, активности и востребованности.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍8🤝7❤1
Превратим любую лекцию в серию LinkedIn-постов за пару минут!
Сегодня создадим сервис, который берёт ссылку на YouTube-вебинар, прогоняет её через
Сначала скачиваем и транскрибируем аудио с тайм-кодами:
Далее формируем запрос к GPT для генерации постов:
🔥 Идеально для продвижения ваших знаний и экспертного контента в
👉 Python Ready | #практика
Сегодня создадим сервис, который берёт ссылку на YouTube-вебинар, прогоняет её через
Whisper, а затем просит GPT сгенерировать 5 готовых LinkedIn-постов: каждый с заголовком, кратким анонсом и релевантными хэштегами.Сначала скачиваем и транскрибируем аудио с тайм-кодами:
from pytube import YouTube
yt = YouTube("https://youtu.be/ВАШ_ID_ВИДЕО")
audio_path = yt.streams.filter(only_audio=True).first().download(filename="webinar.mp4")
result = client.audio.transcriptions.create(
model="whisper-1",
file=open(audio_path, "rb"),
response_format="verbose_json"
)
transcript = "\n".join(
f"[{int(seg['start']//60):02d}:{int(seg['start']%60):02d}] {seg['text']}"
for seg in result.segments
)
Далее формируем запрос к GPT для генерации постов:
prompt = (
"Ты — SMM-специалист. "
"На основе данного транскрипта лекции с тайм-кодами создай 5 LinkedIn-постов. "
"Для каждого поста укажи:\n"
"• Заголовок (до 70 символов)\n"
"• Основной текст (2–3 коротких абзаца)\n"
"• 3–5 релевантных хэштегов\n"
"Формат ответа:\n"
"Пост 1:\n"
"Заголовок: …\n"
"Текст: …\n"
"Хэштеги: #… #… #…\n"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": prompt},
{"role": "user", "content": transcript}
]
)
print(response.choices[0].message.content.strip())
🔥 Идеально для продвижения ваших знаний и экспертного контента в
LinkedIn — серия постов готова без лишних усилий!Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍11❤8
Создаём мини-UUID генератор: короткие уникальные ID для ссылок, токенов и тестовых данных!
Иногда вместо длинного UUID вроде
Импортируем модули:
Классический UUID v4:
Обрезанный UUID на основе hex (берём первые N символов).
UUID v4 содержит 32 hex-символа. Можно использовать префикс, если уровень уникальности устраивает.
Генерация «человеческого» короткого ID из букв/цифр. Удобно для URL, CLI и тестовых данных. Используем secrets для криптографически стойкой случайности.
Пример использования:
Пример вывода:
Создание короткой ссылки:
🔥 Удобно для генерации коротких токенов, временных ссылок, идентификаторов сущностей, тестовых данных или имён файлов.
Для критичных security-задач увеличивайте длину или используйте
👉 Python Ready | #практика
Иногда вместо длинного UUID вроде
550e8400-e29b-41d4-a716-446655440000 нужен компактный, но всё ещё достаточно уникальный идентификатор — для коротких ссылок, временных токенов, тестовых данных, имён файлов и т.п.Импортируем модули:
import uuid
import secrets
import string
Классический UUID v4:
def generate_uuid():
return str(uuid.uuid4())
Обрезанный UUID на основе hex (берём первые N символов).
UUID v4 содержит 32 hex-символа. Можно использовать префикс, если уровень уникальности устраивает.
def generate_short_uuid(length=8):
return uuid.uuid4().hex[:length]
Генерация «человеческого» короткого ID из букв/цифр. Удобно для URL, CLI и тестовых данных. Используем secrets для криптографически стойкой случайности.
ALPHABET = string.ascii_lowercase + string.digits
def generate_human_id(length=8):
return "".join(secrets.choice(ALPHABET) for _ in range(length))
Пример использования:
print("UUID v4: ", generate_uuid())
print("short UUID: ", generate_short_uuid())
print("human ID: ", generate_human_id())Пример вывода:
UUID v4: 3f2a2e46-ff0b-4d56-9b65-b793f9e3b8c1
short UUID: a9c1f2d3
human ID: k4x9b1qz
Создание короткой ссылки:
def make_short_link(base_url="https://my.app/"):
# В реальной системе потребуется хранить соответствие short - original
return base_url + generate_human_id(7)
print(make_short_link())
Для критичных security-задач увеличивайте длину или используйте
secrets.token_urlsafe.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤9👍9
Как zip() может сломать данные и как это предотвратить?
Обычный
Пример скрытого бага:
Элемент 30 потеряется без ошибок и предупреждений.
Чтобы Python явно проверял длины, используйте
Теперь, если длины не совпадают, вы сразу получите:
🔥 Добавляя
👉 Python Ready | #совет
Обычный
zip() останавливается на самой короткой коллекции, лишние элементы просто игнорируются.Пример скрытого бага:
names = ["Alice", "Bob"]
scores = [10, 20, 30]
for name, score in zip(names, scores):
print(name, score)
Элемент 30 потеряется без ошибок и предупреждений.
Чтобы Python явно проверял длины, используйте
strict=True:for name, score in zip(names, scores, strict=True):
print(name, score)
Теперь, если длины не совпадают, вы сразу получите:
ValueError: zip() argument 2 is longer than argument 1
strict=True, вы фиксируете инвариант длины и ловите ошибку в точке её появления.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍16❤15
Например,
list.reverse() изменяет список на месте, а срез [::-1] возвращает новый список в обратном порядке.На картинке — 5 способов развернуть список в Python, которые стоит держать под рукой.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝21👍15🔥8❤3
Генерация PDF-документов на Python!
В backend-разработке и автоматизации часто требуется формировать PDF-файлы: отчёты, инструкции, уведомления, сервисные документы. Для простых задач хорошо подходит лёгкая библиотека
Установка библиотеки:
Импортируем основной класс, создаём PDF-документ и добавляем страницу (по умолчанию формат A4, единицы измерения — мм):
Перед выводом текста задаём шрифт.
Метод
Для многострочного текста используем
Когда все элементы добавлены, сохраняем PDF-файл:
🔥 Важно: встроенные core-шрифты поддерживают только Latin-1. Для кириллицы и любого Unicode-текста необходимо подключать TTF/OTF-шрифты через
👉 Python Ready | #практика
В backend-разработке и автоматизации часто требуется формировать PDF-файлы: отчёты, инструкции, уведомления, сервисные документы. Для простых задач хорошо подходит лёгкая библиотека
fpdf2.Установка библиотеки:
pip install fpdf2
Импортируем основной класс, создаём PDF-документ и добавляем страницу (по умолчанию формат A4, единицы измерения — мм):
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
Перед выводом текста задаём шрифт.
FPDF поддерживает встроенные core-шрифты (Helvetica, Times, Courier и др.), которые не требуют подключения TTF:pdf.set_font("Helvetica", size=12)Метод
cell позволяет выровнять текст по центру и перейти на новую строку:pdf.set_font("Helvetica", style="B", size=16)
pdf.cell(
w=0, # на всю доступную ширину страницы
h=10,
text="My First PDF in Python",
new_x="LMARGIN",
new_y="NEXT",
align="C"
)Для многострочного текста используем
multi_cell, который автоматически обрабатывает переносы строк:pdf.set_font("Helvetica", size=12)
pdf.multi_cell(
w=0,
h=10,
text="This PDF was created using Python and FPDF."
)Когда все элементы добавлены, сохраняем PDF-файл:
pdf.output("report.pdf")
print("PDF created successfully!")add_font.Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤15🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Подробный текстовый курс, ориентированный на самостоятельную проработку и понимание языка. Последовательно раскрываются базовые конструкции, затем углубление в ООП, генераторы, итераторы, замыкания и внутренние механизмы языка. Подходит тем, кто хочет выстроить фундамент или закрепить знания.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝16👍9🔥7❤3
Каналы с IT мероприятиями
Подписывайся,
чтобы не пропустить
1. IT мероприятия для стажеров и студентов
2. IT мероприятия по РФ
3. IT мероприятия и хакатоны
4. Бесплатные IT мероприятия
5. IT мероприятия онлайн
6. IT мероприятия Москва
7. IT мероприятия Санкт-Петербург
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6❤3👍2🔥2
Инициализация значений без if и лишней логики!
Это удобно, когда нужно работать с накоплением данных, а не с проверками. Пример группировки значений:
Результат:
Без
Подходит не только для списков, но и для счётчиков и агрегатов:
🔥 Пригодится везде, где словарь используется как аккумулятор данных: статистика, группировки, обработка событий, агрегации из API и БД.
👉 Python Ready | #совет
setdefault() возвращает текущее значение по ключу, а если ключ отсутствует, создаёт его с указанным дефолтом.Это удобно, когда нужно работать с накоплением данных, а не с проверками. Пример группировки значений:
groups = {}
groups.setdefault("admins", []).append("alice")
groups.setdefault("admins", []).append("bob")Результат:
{'admins': ['alice', 'bob']}Без
setdefault() тот же код обычно выглядит так:if "admins" not in groups:
groups["admins"] = []
groups["admins"].append("alice")
setdefault() убирает условие и фиксирует инвариант: по этому ключу всегда лежит коллекция нужного типа.Подходит не только для списков, но и для счётчиков и агрегатов:
stats.setdefault(user_id, 0)
stats[user_id] += 1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍13🤝11❤2
В этой статье:
• Пройдёте полный путь от анализа данных и EDA до построения модели регрессии;
• Сравните классическую линейную регрессию из scikit-learn с нейросетью на PyTorch;
• Реализуете собственную многослойную модель, обучение, подбор гиперпараметров;
• Разберётесь, почему глубокое обучение не всегда выигрывает у простых моделей.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤11🤝10
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
❤12👍6👎5🔥4
Работа с путями и файлами встречается в конфигурациях, логах, обработке данных и утилитах. Разберем, как делать это проще и надёжнее с помощью стандартных средств языка.
В этом гайде:
• Собираем пути без os.path.join;
• Читаем и пишем файлы через удобные методы;
• Проверяем существование и типы путей;
• Обходим директории и фильтруем файлы.
pathlib делает файловую логику короче, понятнее и надёжнее, без сторонних библиотек.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍13🔥12🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Если надоело смотреть туториалы и хочется понять, как на самом деле выглядят Python-приложения, этот репозиторий стоит сохранить. Он собирает реальные проекты, которые можно изучать как примеры архитектуры, структуры каталогов, зависимостей и подходов к разработке.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍7❤5