Всё просто
В нашем случае мы задаём значения кортежу
Можно заметить выражение
#theory // Just Python
for i in range(10) говорит нам пройтись по списку и сохранить значение каждого элемента в i. В нашем случае мы задаём значения кортежу
(i, some_dict[i]) = (0, 'w'), а это то же, что и i = 0; some_dict[i] = 'w'. Можно заметить выражение
some_dict[i] = 'w', которое и меняет словарь.#theory // Just Python
x.as_integer_ratio()
Метод предоставляет десятичную дробь в виде пары «числитель, знаменатель». То есть поделив a на b вы получите нужное число.
Но им лучше не пользоваться из-за стандарта IEEE 754 (ссылка на пост), а импортировать decimal (см. пример на фото).
#theory // Just Python
Метод предоставляет десятичную дробь в виде пары «числитель, знаменатель». То есть поделив a на b вы получите нужное число.
Но им лучше не пользоваться из-за стандарта IEEE 754 (ссылка на пост), а импортировать decimal (см. пример на фото).
#theory // Just Python
Приоритеты
Первым делом выполняется умножение, а только потом сложение. Но в Python всё несколько сложнее, ведь там операторов больше, чем в школьной математике.
В документации есть раздел по «значимости» каждого оператора (+x, @, ==, |, даже await).
#theory // Just Python
Первым делом выполняется умножение, а только потом сложение. Но в Python всё несколько сложнее, ведь там операторов больше, чем в школьной математике.
В документации есть раздел по «значимости» каждого оператора (+x, @, ==, |, даже await).
#theory // Just Python
Proxy Checker
Чекер, разработанный на Python 3 для проверки прокси.
Получаемые данные:
- тип (HTTP, SOCKS4, SOCKS5)
- время ответа (в секундах)
- анонимность (анонимная или прозрачная)
- страна
- город
- код страны
#theory // Just Python
Чекер, разработанный на Python 3 для проверки прокси.
Получаемые данные:
- тип (HTTP, SOCKS4, SOCKS5)
- время ответа (в секундах)
- анонимность (анонимная или прозрачная)
- страна
- город
- код страны
#theory // Just Python
isinstance(object, classinfo)
Функция проверяет, относится ли объект к типу classinfo. Возможно это тот самый classinfo, а может дочерний тип.
Мы можем передать кортеж, тогда функция будет проверять, относится ли объект к одному из переданных типов.
Документация
#theory // Just Python
Функция проверяет, относится ли объект к типу classinfo. Возможно это тот самый classinfo, а может дочерний тип.
Мы можем передать кортеж, тогда функция будет проверять, относится ли объект к одному из переданных типов.
Документация
#theory // Just Python
Получаем курс валют
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
Документация
Github
#theory // Just Python
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
pip install forex-python
На самом деле это просто клиент для этого сайта. Список доступных валют можно посмотреть тут. Также модуль может конвертировать одну валюту в другую.Документация
Github
#theory // Just Python
Асинхронная замена requests
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
Документация
#theory // Just Python
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
pip install aiohttp
Для быстрой работы DNS: pip install aiodns.Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
Документация
#theory // Just Python
Ещё не надоело работать с os.path?
С Python 3.4 есть отличная альтернатива — pathlib. Он упрощает работу с путями и добавляет новые функции.
Помимо того, что вы теперь можете удобно составлять пути, так ещё и работать с ними (
К тому же пути нормально работают на Windows и Linux. А если ваш код всё ещё использует os, то pathlib совместим с этим модулем.
#theory // Just Python
С Python 3.4 есть отличная альтернатива — pathlib. Он упрощает работу с путями и добавляет новые функции.
Помимо того, что вы теперь можете удобно составлять пути, так ещё и работать с ними (
rename(), rmdir(), etc).К тому же пути нормально работают на Windows и Linux. А если ваш код всё ещё использует os, то pathlib совместим с этим модулем.
#theory // Just Python
Упрощаем работу с SQL
Автор FastAPI придумал SQLModel, который упрощает работу с базами данных. Он объединяет в себе Pydantic и SQLAlchemy.
Установка:
Кстати, библиотека хорошо работает с
Документация
#theory // Just Python
Автор FastAPI придумал SQLModel, который упрощает работу с базами данных. Он объединяет в себе Pydantic и SQLAlchemy.
Установка:
pip install sqlmodel
Таким образом работу с движком БД мы перекладываем на SQLAlchemy, а обработку данных, проверку и перевод в нужный тип на Pydantic. Кстати, библиотека хорошо работает с
fastapi. Вряд-ли это из-за того, что автор один и тот же.Документация
#theory // Just Python
Знаете, как работает словарь?
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#theory // Just Python
Лучше не знать. Начнём с того, что он принимает только хешируемые объекты, то есть те, у которых есть метод
__hash__. Это str, tuple, frozenset и другие неизменяемые объекты.После их запихивают в хеш-таблицу (есть на эту тему классная статья). Если просто, то это «гардеробная». Вы даёте номерок и вам выдают вещь.
#theory // Just Python
Перемещение файлов в Python
Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль
Функция
В случае успеха, функция вернёт новое местоположение файла. Если
#theory // Just Python
Для удобной манипуляции с файлами и папками в стандартной библиотеки Python существует специальный модуль
shutil. Функция
shutil.move(source, destination) позволяет вам переместить любой файл или папку (даже непустую). Обратите внимание, что если destination — это уже существующая папка, то файл/папка будет перемещена внутрь неё, в остальных случаях файл/папка будут скопированы точно по нужному адресу. В случае успеха, функция вернёт новое местоположение файла. Если
destination существует и не является папкой, то будет выброшена ошибка.#theory // Just Python
Я знаю что так будет, но почему?
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#theory // Just Python
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
func.__defaults__.Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#theory // Just Python
Интерфейс командной строки
Самостоятельный парсинг аргументов даже с argparse вызывает трудности. Чтобы их избежать, стоит установить typer.
Установка:
Библиотека сама создаст usage и --help сообщения на основе документации используемых функций или переданных аргументов.
📌 Документация
#theory // Just Python
Самостоятельный парсинг аргументов даже с argparse вызывает трудности. Чтобы их избежать, стоит установить typer.
Установка:
pip install typer
Это — интуинтивно понятный модуль для создания FAST API интерфейсов командой строки. Проще говоря, вы сможете создавать команды по типу git branch -b main.Библиотека сама создаст usage и --help сообщения на основе документации используемых функций или переданных аргументов.
📌 Документация
#theory // Just Python
VSCode в браузере
Если у вас слабый пк или просто лень скачивать IDE на свой пк, то можете запустить его в браузере.
Он поддерживает почти все функции десктопного редактора, так ещё может подключаться к git репозиторию и править там (если есть доступ).
Единственный недостаток — расширения. Они доступны, но с серьёзными ограничениями. Python работает, уже хорошо.
Ссылка на сайт
#tools // Just Python
Если у вас слабый пк или просто лень скачивать IDE на свой пк, то можете запустить его в браузере.
Он поддерживает почти все функции десктопного редактора, так ещё может подключаться к git репозиторию и править там (если есть доступ).
Единственный недостаток — расширения. Они доступны, но с серьёзными ограничениями. Python работает, уже хорошо.
Ссылка на сайт
#tools // Just Python
raise ... from
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
__clause__.Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Zoneinfo
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#theory // Just Python
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#theory // Just Python
tomllib
Это новая встроенная в Python библиотека для работы с TOML конфигурационными файлами.
#theory // Just Python
Это новая встроенная в Python библиотека для работы с TOML конфигурационными файлами.
#theory // Just Python
Оператор преобразования raise ... from
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Оператор может быть полезен при преобразовании исключений из одного типа в другой.
Также мы можем строить цепочку исключений, привязываю каждую новую ошибку к
__clause__.Подробнее о том, где используется raise from и в чём отличие от простого raise вы можете найти тут.
#theory // Just Python
Модуль временных зон
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#modules // Just Python
В PEP-615 (принятый в Python 3.9) появился новый модуль zoneinfo, который упрощает работу с временными зонами. Он обращается к ОС за информацией, если не получается, просит установить tzdata.
Раньше эту функцию выполнял сторонний пакет pytz, теперь им не стоит пользоваться.
#modules // Just Python