Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
pywin32 + GetSystemMetrics — получаем системную инфу в Windows

С помощью библиотеки pywin32 можно вытаскивать системные параметры прямо из Windows API. Получаем разрешение монитора.
👍1
⚙️ concurrent.futures.as_completed() — обрабатывай задачи по мере готовности

Когда запускаешь несколько задач параллельно, не всегда стоит ждать, пока завершатся все. С as_completed() можно обрабатывать результаты сразу, как только задача выполнится
👍4
Фильтрация значений False

Этот пример используется для устранения всех ложных значений из списка, например false, 0, None, " ".
Составной вывод

Простой способ — сложение (конкатенация) строк. Хорошо с одной переменной в строке, а если их больше — читается с трудом.

print('Hello ' + name + ' — ' + str(age) + ' y.o.')

Функция format() позволяет формировать понятный вывод не только для пользователя, но и для программиста.

print('Hello {} — {} y.o.'.format(name, age))

Python последовательно проставляет номера для скобок и передает им значения переменных, последовательно указанных в аргументе.
NumPy: concatenate

Функция numpy.concatenate() используется для объединения массивов вдоль существующих осей. Это позволяет объединять несколько массивов NumPy в один массив. Мы передаем последовательность массивов, которые хотим объединить, в функцию concatenate() вместе с осью. Если ось не передана явно, она принимается за 0.
Преобразование текста в речь

Этот проект на Python использует ряд новых библиотек для преобразования существующей статьи в воспроизводимый mp3-файл. Вам нужно будет установить nltk (natural language toolkit), newspaper3k и gtts.

Программа простая, поскольку мы просто передаем URL-адрес статьи для преобразования, а затем позволяем функции обрабатывать преобразование текста в речь с помощью наших недавно установленных модулей.
Как округлить число до нужного знака после запятой?

Новички часто пытаются округлять числа вручную или с помощью форматирования строк. Однако в Python есть встроенная функция round(), которая делает это просто и понятно.

Функция round(число, знаки) округляет число до указанного количества знаков после запятой. Если не указывать второй аргумент — округлит до целого. Удобно для вывода результатов вычислений, цен или процентов.

Итог:
round(x, n) — округление числа x до n знаков после запятой.
Без второго аргумента округляет до целого.
Полезно при работе с деньгами, метриками и графиками.
👍3
Метод get() у словарей и его «дефолтный» результат.

Немножко теории: метод get() возвращает значение для искомого ключа. Если ключ недоступен, возвращает значение по умолчанию.

Метод get() возвращает значение по ключу если такой ключ присутсвует в списке, если его нет, то метод возвращает дефолтное значение.

Если же мы напишем name_for_userid.get(5454) без указания «дефолтного» значения, то функция вернет None. Довольно удобно и практично.
❤3
Хочешь пройти собеседование на Python-разработчика?

👉 @easy_interview_ai_bot 👈

Тренируйся, и ты больше не будешь получать отказы!
👍3✍1🔥1
🔍 Cartopy — инструмент для работы с картами в Python

Если вам нужно визуализировать геоданные или создать собственную карту — обратите внимание на Cartopy. Это мощная библиотека, построенная на Matplotlib, которая открывает широкие возможности для работы с географией прямо в Python.
Как замерить время выполнения кода в Python?

Когда нужно понять, насколько быстро работает фрагмент кода, новички часто используют сторонние инструменты или пробуют измерять время "на глаз". Но в Python есть простой и встроенный способ — модуль time.

С помощью time.time() можно зафиксировать время до и после выполнения кода, а затем вычесть одно из другого. Это особенно полезно при оптимизации производительности.

Итог:
+ Используем time.time() для измерения скорости.
+ Удобно для профилирования и отладки.
+ Легко встроить в любой проект.
3 трюка с itertools

Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один.

Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.

А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция combinations. Вторым аргументом можно задать длину этой самой комбинации.
👍2
🔧 clean-text — инструмент, который приведёт ваш текст в порядок

Если вы работаете с текстами из соцсетей, форумов или комментариев, вы знаете, насколько они бывают неструктурированными и с лишними символами. clean-text поможет быстро привести такой ввод к нормальной форме — всего одной строкой кода.

💬 Пример:
Входной текст:

A bunch of \\u2018new\\u2019 references, including [Moana](https://en.wikipedia.org/wiki/Moana_%282016_film%29).
»Yóù àré rïght <3!«


После очистки:

A bunch of 'new' references, including [moana](<URL>).
"you are right <3!"


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

🔗 Документация: https://pypi.org/project/clean-text/
Как удобно разбивать длинные строки в Python

Когда строка становится слишком длинной и тяжело читается — её стоит разбить. Вот три способа сделать это грамотно:

1️⃣ С косой чертой `/`
Позволяет продолжить строку на новой строке без ошибок, но нужно быть аккуратным с пробелами и переносами.

2️⃣ Скобки (круглые)
Самый "питоничный" способ — просто обернуть выражение в скобки. Строки объединяются автоматически, без +.

3️⃣ Тройные кавычки `'''` или `"""`
Хранится всё, как написано: и переносы строк, и пробелы. Удобно для текстов с форматированием.
🔥3👍2🤩2
🎯 Фокус со срезом: никаких ошибок из ничего

Срезы в Python — мощный инструмент для получения подмножеств из последовательностей: строк, списков, кортежей, range.

Но вот интересный момент: если сделать срез у пустой последовательности — ошибки не будет, просто вернётся снова пустая.

[][:5]      # → []
''[2:4] # → ''
()[::2] # → ()


Полезно знать при работе с переменными, которые могут оказаться пустыми — код останется устойчивым. Удобная мелочь, а спасает от лишних проверок.
🛡 try/except — ловим ошибки с умом

try/except — конструкция, без которой не обойтись, когда работаешь с внешними данными или непредсказуемыми действиями пользователя.

🔹 try — здесь выполняется код, который может "упасть"
🔹 except — если что-то пошло не так, переходим сюда
🔹 else — если ошибок не было, работаем дальше спокойно
🔹 finally — выполняется всегда, даже если был return или исключение

try:
num = int(input("Введите число: "))
except ValueError:
print("Это не число. Попробуйте снова.")
else:
print("Спасибо!")
finally:
print("Завершение операции.")


Надёжный способ держать код под контролем.
👍5
Proxy Checker

Чекер, разработанный на Python 3 для проверки прокси.

Получаемые данные:
- тип (HTTP, SOCKS4, SOCKS5)
- время ответа (в секундах)
- анонимность (анонимная или прозрачная)
- страна
- город
- код страны
🧙‍♂️ eval() в Python vs ast.literal_eval()

Иногда нужно превратить строку в объект Python. Например:

eval("{'key': 42}")  # работает, но...


⚠️ eval() опасен — он выполнит любой код, даже вредоносный.

✅ Безопасная альтернатива:

import ast
safe_dict = ast.literal_eval("{'key': 42}")


ast.literal_eval() понимает только литералы (dict, list, str, int и т.п.) — и ничего не испортит.

🔐 Используй, если работаешь с пользовательским вводом, конфигами или данными из файлов.
👍3
Библиотека captcha позволяет легко генерировать капчи — как текстовые изображения, так и аудио.

Что она умеет:

* Генерация капчи в виде изображения или аудиофайла.
* Настройка шрифтов, что полезно для борьбы с распознавателями текста (например, Tesseract).
* Возможность кастомизации под ваши нужды с помощью различных параметров.

Библиотека активно обновляется, так что проблем с ней не будет.

Важно: Не называйте файл captcha.py, иначе Python не поймет и выкинет ошибку.

Установить:
⚙️ pip install captcha
👍3
importlib.invalidate_caches() очищает кэш путей поиска модулей в Python. Это нужно, когда вы динамически добавляете или удаляете .py файлы, например, в тестах, плагинах или REPL-средах. В таких случаях Python может не увидеть изменения, пока не обновит свой кэш, и эта функция помогает решить эту проблему, заставляя систему пересканировать пути к модулям.

Зачем это нужно:

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

Пример использования:

import importlib
importlib.invalidate_caches()


Этот вызов гарантирует, что Python будет использовать актуальные версии модулей, если они были изменены или добавлены в процессе работы.