Разъяснивший Python
8.17K subscribers
2.43K photos
40 videos
30 files
2.28K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
smtplib - библиотека для отправки сообщений на адрес электронной почты в Python.

Библиотеку smtplib не нужно скачивать, это означает, что она стандартная.

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

Также smtplib поддерживает защищенное соединение SSL/TLS с SMTP сервером.

Документация и примеры код здесь (русская)
Официальная документация здесь (английская)

Разъяснивший Python
Pylint - популярный линтер для Python версий 2.x/3.x.

Он проверяет код на соответствие PEP-8.
А также непосредственно запускает его, чтобы найти ошибки.
Либо какие-то неочевидные проблемы.

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

Крч для Python разработчика — Must Have

Ставится командой ⚙️ pip install pylint
Документация и примеры кода здесь

Разъяснивший Python
🔥1
Как легко сконвертировать изображение в любой нужный формат (например JPG -> PNG)?

Для этого в модуле Pillow есть методы save() и convert(), которые позволяют сохранить ваше фото в новом формате или просто переименовать его, например, image.jpg в img.png

Важно понимать, что в таком случае меняется не просто расширение файла, но и сами метаданные внутри файла!

Для того чтобы сделать это в Python, нужно сначала установить Pillow:
pip install pillow

Затем напишите следующий код:
from PIL import Image

img = Image.open("имя_файла.jpg")

img.save("имя_файла.png")

Замените "имя_файла.jpg" на ваше имя файла или путь к нему, и после запуска этого кода ваше фото будет сохранено в формате PNG.

В случае обратной конвертации (например, из PNG в JPG) может потребоваться смена режима.
Для этого используем метод convert():
img = img.convert('RGB')


Ставится командой ⚙️ pip install pillow
Документация Pillow здесь
Подробнее про смену режима — convert()

Разъяснивший Python
1
Boto3 - официальный SDK (Software Development Kit), для работы с Amazon Web Services (AWS) и для работы с их облачными сервисами на Python.

Это мощный инструмент , который позволяет разработчикам создавать, управлять различные задачи в облаке, такие как работа с хранилищем файлов S3, виртуальными серверами EC2, базой данных DynamoDB и многими другими сервисами.

Разработана кнш самой компанией Amazon, библиотека также обеспечивает широкие возможности интеграции с AWS, что делает её популярным инструментом среди программистов, работающих с облаками.

Ставится командой ⚙️ pip install boto3
Официальная документация и примеры кода здесь

Разъяснивший Python
Скачиваем изображение с помощью ссылки в Python

import requests

url = "<ссылка на ваше изображение>"
response = requests.get(url)

with open("image.jpg", "wb") as file:
file.write(response.content)

print("Изображение успешно загружено.")

Скопируйте этот код и замените текст <ссылка на ваше изображение> на реальную ссылку, например — https://github.com/github_logo.jpg

Таким же образом можно скачивать любые мелкие файлы.
Текстовые, архивы, иконки и тд.

Главное не забудьте поставить библиотеку requests командой ⚙️ pip install requests

Разъяснивший Python
Словарь с "молчаливыми" значениями — defaultdict

Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.

Итог:
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.

Разъяснивший Python
Как красиво подставлять переменные в строку?

Новички часто используют конкатенацию (+) или .format() для создания строк с переменными, но это может быть громоздко и неудобно. Python предлагает современный и удобный способ — f-строки (форматированные строки), которые позволяют подставлять значения прямо внутрь строки с минимальным синтаксисом.

Для этого перед строкой нужно поставить f, а переменные — обернуть в фигурные скобки {}.

Итог:
f-строки — простой и читаемый способ форматирования.
Позволяют вставлять выражения прямо в строку.
Быстрее и удобнее, чем .format() или +.

Разъяснивший Python
👍1
Как узнать, есть ли элемент в списке?

Иногда нужно проверить, содержится ли элемент в списке. Новички могут использовать циклы, но Python предлагает более быстрый способ — оператор in.

Этот приём позволяет проверить наличие элемента за одну строку: "item" in list1 возвращает True, если элемент есть в списке, и False, если нет.

Итог:
Проверка за одну строку.
Читается как обычное предложение.
Работает мгновенно!

Разъяснивший Python
Bottle — это мини-фреймворк для Python, позволяющий писать веб-приложения с высокой скоростью, и он представлен в виде одного файла bottle.py, так что для его работы достаточно только этого файла.

Мы все обожаем примеры, поэтому вот код для начала работы с Bottle:
from bottle import route, run, template

@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

Здесь мы создали веб сервер по адресу localhost с портом 8080.
Вы можете изменить текст "Hello {{name}}" на любой другой текст.

Чтобы проверить его работу, просто перейдите по ссылке http://localhost:8080/hello/world. После этого вы увидите на экране "Hello World".

Повторюсь, Bottle распространяется в виде одного файла-модуля и не имеет никаких зависимостей, кроме стандартной библиотеки Python.

Ставится командой ⚙️ pip install bottle
Официальная документация только на английском
Русская документация

Разъяснивший Python\
The Экономист
⚡️Дарим сразу три новеньких iPhone 16 за подписку! Для участия в розыгрыше нужно: 1. Быть подписанным на The Экономист, Доллар по тридцать и Чё по трендам? 2. Нажать «Участвую!» под этим постом Бот случайным образом выберет победителей 2 июня в 18:00. Айфоны…
⚡️Уже ЗАВТРА мы подведём итоги масштабного розыгрыша — троим из вас достанется новенький iPhone 16!

Самое время подписаться на @economica, @ruble30 и @trendswhat и нажать «Участвую!» под этим постом, если вы ещё этого не сделали. Результаты уже завтра в 18:00!
Проверка аргументов функций — assert как мини-валидация

Иногда нужно быстро проверить корректность аргументов функции. Можно использовать assert для встроенной валидации прямо в начале.

Итог:
assert — быстрый способ «подстелить соломку» и отлавливать очевидные ошибки ещё до выполнения основного тела функции. Особенно полезно в прототипах и тестах.

Разъяснивший Python
Получаем HTML код в Python с помощью библиотеки requests

Импортируем requests:
import requests


Добавляем get("Ссылка") чтобы requests знал, с чем вы работаете, к примеру укажем страницу Google
site = requests.get("https://google.com")


Получаем HTML разметку с помощью свойства text
html_code = site.text


Полный код
# Импортируем requests
import requests

# Добавляем get("Ссылка") чтобы requests знал, с чем мы работаем. Например, укажем страницу Google
site = requests.get("https://google.com")

# Получаем HTML разметку с помощью text
html_code = site.text

# Выводим HTML код
print(html_code)


Более подробную информацию про работу с библиотекой requests можете прочитать здесь

Разъяснивший Python
🤯2
APScheduler — это инструмент для автоматизации задач в Python. Он позволяет планировать выполнение задач в определённое время или через интервалы.

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

Ставится командой ⚙️ pip install APScheduler
Документация и примеры кода здесь.

Разъяснивший Python
ReadWriteMemory — это топовая библиотека, позволяющая легко читать/записывать в память любого процесса.

С её помощью можно, например, сделать читы для игры.
А если подрубить такие библиотеки, как imGui, то можно вывести и оверлей чита.
Либо сделать простой трейнер.

Ставится командой pip install ReadWriteMemory
Документация и примеры кода здесь.

Разъяснивший Python
Как оптимизировать память используя генераторы вместо списков

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

Пример кода

Допустим, у нас есть задача найти квадраты чисел от 1 до 1 000 000. Сначала посмотрим, как это сделать с помощью списка:

# Плохая практика: использование списка
squares = [x**2 for x in range(1, 1000001)]


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

# Лучшая практика: использование генератора
squares = (x**2 for x in range(1, 1000001))


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

Разъяснивший Python
Модуль dataclasses предназначен для упрощения создания классов данных.

Он предоставляет декоратор и набор инструментов, которые автоматически генерируют основные методы класса, такие как __init__(), __repr__(), __eq__(), и другие. Это упрощает создание классов, которые служат простым хранилищем данных, без необходимости вручную определять все методы

В примере выше мы используем декоратор @dataclass, чтобы автоматически сгенерировать методы класса Point. Мы определяем поля x, y и z, которые представляют координаты точки. После создания экземпляра класса Point с помощью аргументов конструктора, мы можем напрямую выводить информациюreprтод __repr__() автоматически сгенерирован. Это делает код более лаконичным и удобным для использования.

Подробнее здесь

Разъяснивший Python
Безопасное закрытие ресурсов с contextlib.suppress

Иногда нужно проигнорировать конкретные ошибки, не загромождая код try/except-блоками. contextlib.suppress делает это изящно.

Итог:
contextlib.suppress помогает лаконично и безопасно игнорировать конкретные исключения, не засоряя код лишней обработкой.

Разъяснивший Python
Задачи с LeetCode: Two Sum

Продолжаем делиться циклом видео, где автор решает различные задачи с LeetCode.

Дан массив целых чисел nums и целое число target. Найти индексы двух чисел, сумма которых равна target. Гарантируется, что такой ответ существует и каждый элемент используется не более одного раза.

Пример:


nums = [2, 7, 11, 15], target = 9
# Ответ: [0, 1], потому что nums[0] + nums[1] = 2 + 7 = 9


👀Смотреть видео

Разъяснивший Python
Простое логирование времени выполнения кода с timeit

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

Итог
Модуль timeit — удобный способ измерить производительность кода без лишней возни с time. Особенно полезен при сравнении разных реализаций.

Разъяснивший Python
Модуль Faker поможет создавать реалистичные тестовые данные.

Независимо от того, нужны ли вам данные для тестирования, заполнения базы данных или демонстрации функционала, Faker делает процесс генерации данных простым и эффективным.

Faker предоставляет генераторы для различных типов данных, таких как имена, адреса, номера телефонов, электронные почты, даты, текст и многое другое. Это идеальное решение для тех, кто хочет ускорить процесс тестирования.

На примере выше мы написали функцию generate_fake_user, которая использует различные методы Faker, чтобы создать случайные данные для имени, электронной почты, номера телефона и адреса. Затем мы выводим полученные данные о пользователе.

Ставится командой ⚙️ pip3 install faker
Документация и примеры кода здесь

Разъяснивший Python
3