Разъяснивший Python – Telegram
Разъяснивший Python
7.69K subscribers
2.79K photos
40 videos
30 files
2.67K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Скачиваем изображение с помощью ссылки в 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
Что такое enumerate() в Python и зачем он нужен?

enumerate() — это встроенная функция, которая добавляет счётчик к итерируемому объекту. Полезна, когда нужно получить и индекс, и значение при переборе списка, строки или любого итератора.

➡️ Пример:

fruits = ['яблоко', 'банан', 'вишня']

for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")

0: яблоко
1: банан
2: вишня


🗣 Без enumerate() пришлось бы вручную управлять счётчиком. Это делает код чище, читаемее и более "питоничным".


Разъяснивший Python
👍2
Парсер вакансий с hh.ru

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

Ссылка на код

Разъяснивший Python
Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом

В этой статье автор разберет процесс создания desktop-приложения, которое по запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок будет много, он воспользуется асинхронностью Python для конкурентной реализации операций ввода-вывода.

|Ссылка на просмотр

Разъяснивший Python
Большая шпаргалка по Python от А до Я с примерами кода!

Внутри:
➡️ Типы данных и приведение типов;
➡️ Срезы и строки;
➡️ Арифметические и логические операторы;
➡️ Условные конструкции (if / else / elif);
➡️ Списки и их методы;
➡️ Кортежи (tuples);
➡️ Словари (dict);
➡️ Циклы while и for;
➡️ Ввод данных от пользователя;
➡️ Функции и параметры;
➡️ Классы, наследование и многое другое с примерами кода.

Разъяснивший Python
Полезные библиотеки Python

Bandit — твой персональный багхантер в Python-коде!

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

Что умеет:
Вычисляет слабые места, через которые можно слить данные или исполнить произвольный код.
Показывает проблемные строки с пояснениями: от банального eval() до серьёзных криптокосяков.
Подходит для проектов, CTF-подготовки и анализа чужих репозиториев.

Использование проще простого:

$ bandit your_noscript.py


Результат? Прям как отчёт после Red Team-а: чётко и по существу.

GitHub/Инструкция

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