Python | Программирование
Открыть в Telegram
Python без границ для всех Владелец, реклама @Ak_Mihail Преобрести рекламное размещение: https://telega.in/c/Python_libr
Больше9 128
Подписчики
+124 часа
-97 дней
-5030 день
Архив постов
📌 Что такое
__all__ ?
Вот вы написали from module import * и к вам в код попало куча объектов, которые используются только внутри модуля.
Избавиться от мусора можно, если записать в __all__ список имён всех объектов (классы, функции, переменные), которые надо импортировать.
📕 Документация
#урок📌
__init__ vs __new__
__new__(cls) создаёт экземпляр класса. Это метод, который вызывается когда пишем AnyClass().
__init__(self) инициализирует класс, то есть задаёт все переданные значения.
Вызывается после __new__ только если метод вернул такой же тип, что и класс, в котором он определён
#урок📌 Алгоритм бинарного поиска
Если у вас есть отсортированный список и вам нужно найти элемент или добавить его так, чтобы порядок не изменился, взгляните в сторону этого алгоритма.
Он намного быстрее чем простой проход по списку (для тех, кто шарит: O(log n) vs O(n)) и, к тому же, встроен в Python (модуль bisect).
📕 Документация
#урок
🧩 Топ-16 Python-приложений в реальном мире.
• За последние несколько лет технологии вокруг нас поменялись почти во всех аспектах. Мы живем в мире, где во главе угла стоит программное обеспечение, а за почти любой службой стоит какая-нибудь строчка кода. Индустрия путешествий, банкинг, образование, исследования, военная сфера — лишь немногие из тех, кто полагается на ПО.
• Любой софт написан на каком-то языке программирования. А число последних лишь растет. Однако одним из самых популярных в мире на сегодня является Python. В этой статье рассмотрим примеры реальных приложений, работающих на этом языке.
🧷 https://pythonru.com/baza-znanij/primery-programm-na-python
#Статья
📌 Асинхронная замена requests
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
pip install aiohttp
Для быстрой работы DNS: pip install aiodns.
Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
📕 Документация
#урок📌 Получаем курс валют
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
pip install forex-python
На самом деле это просто клиент для этого сайта. Список доступных валют можно посмотреть тут. Также модуль может конвертировать одну валюту в другую.
📕 Документация
🐙 Github
#урок📌 Параметры доступа
global перед переменной говорит нам о том, что она будет глобальной, то есть доступной во всём модуле.
nonlocal используется во вложенных функциях и даёт доступ к переменным внешней функции. Требует, чтобы переменная была определена.
📕 Документация
#урок
📌 Красивые ошибки
Можно скрасить тяжёлые будни и настроить pretty_errors — модуль, который редактирует вывод исключений.
Установка:
pip install pretty_errors
Вводим python -m pretty_errors, отвечаем на вопросы (или просто нажимаем Enter) и заканчиваем установку.
Теперь попробуйте сделать что-то запрещённое (поделить на 0) и вы получите ошибку как на фото выше.
#урок📌 else в цикле
Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится.
📕 Документация
#урок
📌 Упрощаем поиск багов
Время от времени стоит проверять, правильно ли работает функция и те ли данные она получила. В этом случае поможет assert.
Оператор принимает булевскую переменную, которая, если будет равняться False, выбросит исключение AssertionError.
Также, она выдаёт комментарий, который объясняет, что не так с этим кодом и как исправить ошибку. Но второй аргумент не обязателен.
#урок
📌 Встроенные команды
Это — функции, которые доступны из любого места в приложении. Некоторые из них вы видели:
float(), str(), int(), map(), filter().
str(), int(), float(), list(), tuple() — переводят к какому-то типу: строка, целое число, дробовое число, список и кортеж.
map(), filter() — создают итераторы, которые преобразуют или фильтруют по определённым правилам (см. пример 2).
all(), any() — проверяют, если все значения True (all) или если хотя бы одно значение True (any).
#теория📌 Быстро поднимаем сервер
Бывает нужно очень быстро перекинуть файлы с одного компьютера на другой. Такое сделать можно с помощью Python.
На одном компьютере запускаем HTTP сервер:
python3 -m http.server, а на другом — качаем файл с помощью браузера.
Если не получилось, проверьте, подключены ли вы к одной сети? Возможно брандмауэр сервера блокирует запросы, а может просто забыли про порт.
#урокАсинхронное программирование
Пока одна задача ждёт чего-то, она даёт другой задаче выполняться. В таком случае функции превращаются в корутины, и управляются они особым циклом из asyncio.
Корутина — функция, которая может приостанавливать свое выполнение на некоторое время. Определяются они с помощью async.
Приостановить корутину можно с помощью await, тогда контроль передаётся другой задаче. Таким образом код выполняется не сверху вниз, а в зависимости от того, что сейчас нужнее.
#урок
📌 Цепочка операторов
Python любит, когда код выглядит чисто и красиво, поэтому в нём реализована много фишек для упрощения программы.
С помощью цепочки операторов мы можем объединять несколько проверок в одну, но простую. Состоять она может из операторов сравнения (>, ==, <), is и in.
Также
a op1 b op2 c не создаёт никаких связей между a, b, c. Поэтому ничего не мешает вам написать так: a < b > c, хоть это и не очень красиво
Документацния
#урок📌 Работаем с таблицами в Python
Отображать данные в таблице довольно удобно, но вот реализовать такую функцию сложно. Хорошо, что это сделали за нас создатели prettytable.
Установка:
pip install prettytable
Вы можете загружать значения из базы данных, csv-файлов или ручками добавлять информацию. После можете выводить в разных формата: CLI (терминал), JSON, HTML.
Вывод также очень легко настраивается, подробнее об этом тут.
#урок📌 Зачем нужна
__name__?
Эта переменная нужна для проверки, модуль импортировали или же запустили как отдельный файл.
Если скрипт запущен отдельно, он получает имя '__main__', а если импортирован, то имя модуля (файла).
Таким образом можно избежать неожиданного поведения, ведь весь код при импорте выполняется абсолютно. Проверка __name__, к слову, считается хорошей практикой. Никогда не узнаешь, как твой скрипт будут использовать.
Все эти особенности описаны в документации Python.
#теория📌 Работаем с приложением из терминала
Каждый раз получать данные через
input() неудобно. В таком случае лучше создать CLI API, но это трудно и долго... Если не использовать click.
Установка: pip install click
Библиотека мало того, что легко настраивается, так ещё и самостоятельно генерирует страницу помощи с полученными параметрами.
Если модуль вам подходит, можете начать с документации.
#урок📌 Встроенные функции
Встроенные функции — это те, которые доступны из любого места в коде.
print, float, int, str — всё это относится к ним.
enumerate, zip, reversed — функции, помогающие при работе с итерируемым объектом (список, множество, словарь).
getattr, hasattr, setattr — функции для работы с атрибутами класса (получить значени, есть ли атрибут, задать значение).
map, filter — итераторы, которые выполняют какие-то действия (что-то меняют или убирают).
Документация
#урок📌 Помощники цикла
Эти функции упрощают работу при работе с итерируемыми объектами. Использовать их можно как угодно, но чаще всего они встречаются рядом с for.
enumerate(iter, start=0) — возвращает кортеж типа (индекс, значение). Если передать второй параметр, то индекс сместиться на start единиц.
reversed(iter) — проходится по объекту задом наперёд. Если это невозможно, выдаёт ошибку.
zip(*args) — параллельно проходит по всем объектам, возвращая по элементу с каждого.
Если вы что-то не поняли, то можете посетить документацию: enumerate, zip и reversed.
#урок
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
