А вы знаете, как в Python генераторы работают под капотом?
Обычная функция возвращает результат и завершает работу. Если использовать
Под капотом
Пример — читаем и сразу обрабатываем огромный файл:
🔥 Генератор — это функция с
👉 Python Ready | #практика
Обычная функция возвращает результат и завершает работу. Если использовать
yield
, функция превращается в генератор — объект generator
, который реализует протокол итератора (__iter__
и __next__
):def gen():
for i in range(1, 4):
yield i * i # лениво возвращаем квадраты
g = gen()
for x in g:
print(x) # 1, 4, 9
Под капотом
next()
двигает выполнение до следующего yield
. Когда значения заканчиваются, выбрасывается StopIteration
, но цикл for
это делает незаметным.Пример — читаем и сразу обрабатываем огромный файл:
def read_file(path):
with open(path) as f:
for line in f:
yield line.strip().upper() # лениво трансформируем строки
🔥 Генератор — это функция с
yield
, создающая итератор и позволяющая лениво обрабатывать данные, экономя память и время.Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤13🔥8
В этой статье:
• Узнаешь, какие библиотеки для ботов существуют и чем отличаются;
• Установишь и подключишь TeleBot;
• Напишешь простой бот с обработкой команд (например, /start);
• Разберёшь каждую строчку кода — что делает, как отвечает.
🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤14👍8🔥5
Есть список банковских транзакций, и нужно посчитать итоговый баланс каждого клиента. Часто встречается в финтех-приложениях, аналитических сервисах и бэкендах.
В этой задаче:
• Используем defaultdict для аккумулирования балансов клиентов.
• Применяем Decimal для точной работы с денежными суммами.
• Оборачиваем всю логику в удобную функцию calculate_balances.
Если итоговый баланс клиента отрицательный — стоит проверить транзакции на ошибки, переплаты или проблемы с платежами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍10🔥8
•
lstrip()
— не работает с конкретными словами, он ориентируется только на набор символов. Отлично подходит для быстрой очистки строки от пробелов, слэшей, знаков и других служебных символов.•
removeprefix()
— работает безопасно: если префикса нет, строка остаётся неизменной. Идеален для работы с путями, URL и форматированными данными.Оба метода упрощают работу со строками и повышают читаемость кода.
🔥 — если узнал что-то новое
🤝 — если уже их использовал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥47👍9❤7🤝1
Python Ready | Программирование
Кто первый выиграет? 😁
В комментах👇
В комментах
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥23👍5😁5
Например,
get()
безопасно получает значение по ключу, а update()
обновляет словарь новыми парами ключ–значение.На картинке — 9 методов словаря с примерами и результатами, которые стоит держать под рукой.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍11🔥6
В этом гайде разберём, как подключиться к SMTP-серверу и отправлять письма автоматически. Узнаем, как безопасно логиниться, формировать сообщения и рассылать их пользователям.
Сегодня в посте:
• Подключаемся к SMTP и включаем шифрование.
• Логинимся через почту и пароль приложения.
• Формируем текстовое или HTML-письмо.
• Отправляем сообщения и закрываем соединение.
Подойдет для систем уведомлений, автоматических отчётов и напоминаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥9❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Огромный сборник простых, полезных и ориентированных Python-скриптов, созданный для автоматизации задач и обучения. Идеально подходит для тех, кто любит разбираться в коде, искать оптимизации и ловить тонкости реализации.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤7🔥5