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

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

@python_pssss

Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/python_pssss
Subscribers
6.97K
Photos
3.3K
Videos
48
Links
3.3K

Showing posts older than #3496 · Back to latest

Older Posts 20 shown
Post #3494 430
Полезные библиотеки Python

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

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

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

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

$ bandit your_script.py


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

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

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

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

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

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

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

Разъяснивший Python
Хабр Пишем асинхронный парсер и скрапер картинок на Python с графическим интерфейсом Картинка для статьи создана Microsoft Designer В этой статье мы создадим desktop-приложение, которое по нашему запросу будет сохранять на нашем диске заданное количество картинок. Так как картинок...
Post #3490 514
Парсер вакансий с hh.ru

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

Ссылка на код

Разъяснивший Python
Post #3489 487
Что такое enumerate() в Python и зачем он нужен?

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

➡️ Пример:

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

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

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


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


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

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

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

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

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

Разъяснивший Python
  • ❤ 3
Post #3486 533
Простое логирование времени выполнения кода с timeit

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

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

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

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

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

Пример:


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


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

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

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

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

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

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

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

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

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

Когда мы работаем с большими наборами данных, важно помнить об эффективном использовании памяти. Одной из полезных фишек 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
Post #3480 495
ReadWriteMemory — это топовая библиотека, позволяющая легко читать/записывать в память любого процесса.

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

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

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

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

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

Разъяснивший Python
Post #3478 515
Получаем 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
Post #3476 456
Проверка аргументов функций — assert как мини-валидация

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

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

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

Самое время подписаться на @economica, @ruble30 и @trendswhat и нажать «Участвую!» под этим постом, если вы ещё этого не сделали. Результаты уже завтра в 18:00!
Post #3474 506
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\
Post #3473 455
Как узнать, есть ли элемент в списке?

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

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

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

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

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

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

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

Разъяснивший Python
  • 👍 1
Post #3470 420
Словарь с "молчаливыми" значениями — defaultdict

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

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

Разъяснивший Python
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →