📌 Цепочка операторов
Python любит, когда код выглядит чисто и красиво, поэтому в нём реализована много фишек для упрощения программы.
С помощью цепочки операторов мы можем объединять несколько проверок в одну, но простую. Состоять она может из операторов сравнения (>, ==, <), is и in.
Также
Документацния
#урок
Python любит, когда код выглядит чисто и красиво, поэтому в нём реализована много фишек для упрощения программы.
С помощью цепочки операторов мы можем объединять несколько проверок в одну, но простую. Состоять она может из операторов сравнения (>, ==, <), is и in.
Также
a op1 b op2 c
не создаёт никаких связей между a, b, c. Поэтому ничего не мешает вам написать так: a < b > c, хоть это и не очень красивоДокументацния
#урок
Асинхронное программирование
Пока одна задача ждёт чего-то, она даёт другой задаче выполняться. В таком случае функции превращаются в корутины, и управляются они особым циклом из asyncio.
Корутина — функция, которая может приостанавливать свое выполнение на некоторое время. Определяются они с помощью async.
Приостановить корутину можно с помощью await, тогда контроль передаётся другой задаче. Таким образом код выполняется не сверху вниз, а в зависимости от того, что сейчас нужнее.
#урок
Пока одна задача ждёт чего-то, она даёт другой задаче выполняться. В таком случае функции превращаются в корутины, и управляются они особым циклом из asyncio.
Корутина — функция, которая может приостанавливать свое выполнение на некоторое время. Определяются они с помощью async.
Приостановить корутину можно с помощью await, тогда контроль передаётся другой задаче. Таким образом код выполняется не сверху вниз, а в зависимости от того, что сейчас нужнее.
#урок
📌 Быстро поднимаем сервер
Бывает нужно очень быстро перекинуть файлы с одного компьютера на другой. Такое сделать можно с помощью Python.
На одном компьютере запускаем HTTP сервер:
Если не получилось, проверьте, подключены ли вы к одной сети? Возможно брандмауэр сервера блокирует запросы, а может просто забыли про порт.
#урок
Бывает нужно очень быстро перекинуть файлы с одного компьютера на другой. Такое сделать можно с помощью Python.
На одном компьютере запускаем HTTP сервер:
python3 -m http.server
, а на другом — качаем файл с помощью браузера.Если не получилось, проверьте, подключены ли вы к одной сети? Возможно брандмауэр сервера блокирует запросы, а может просто забыли про порт.
#урок
📌 Встроенные команды
Это — функции, которые доступны из любого места в приложении. Некоторые из них вы видели:
#теория
Это — функции, которые доступны из любого места в приложении. Некоторые из них вы видели:
float()
, str()
, int()
, map()
, filter()
. str()
, int()
, float()
, list()
, tuple()
— переводят к какому-то типу: строка, целое число, дробовое число, список и кортеж.map()
, filter()
— создают итераторы, которые преобразуют или фильтруют по определённым правилам (см. пример 2).all()
, any()
— проверяют, если все значения True (all) или если хотя бы одно значение True (any).#теория
📌 Упрощаем поиск багов
Время от времени стоит проверять, правильно ли работает функция и те ли данные она получила. В этом случае поможет assert.
Оператор принимает булевскую переменную, которая, если будет равняться False, выбросит исключение AssertionError.
Также, она выдаёт комментарий, который объясняет, что не так с этим кодом и как исправить ошибку. Но второй аргумент не обязателен.
#урок
Время от времени стоит проверять, правильно ли работает функция и те ли данные она получила. В этом случае поможет assert.
Оператор принимает булевскую переменную, которая, если будет равняться False, выбросит исключение AssertionError.
Также, она выдаёт комментарий, который объясняет, что не так с этим кодом и как исправить ошибку. Но второй аргумент не обязателен.
#урок
📌 else в цикле
Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится.
📕 Документация
#урок
Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится.
📕 Документация
#урок
📌 Красивые ошибки
Можно скрасить тяжёлые будни и настроить pretty_errors — модуль, который редактирует вывод исключений.
Установка:
Теперь попробуйте сделать что-то запрещённое (поделить на 0) и вы получите ошибку как на фото выше.
#урок
Можно скрасить тяжёлые будни и настроить pretty_errors — модуль, который редактирует вывод исключений.
Установка:
pip install pretty_errors
Вводим python -m pretty_errors
, отвечаем на вопросы (или просто нажимаем Enter) и заканчиваем установку.Теперь попробуйте сделать что-то запрещённое (поделить на 0) и вы получите ошибку как на фото выше.
#урок
📌 Параметры доступа
global перед переменной говорит нам о том, что она будет глобальной, то есть доступной во всём модуле.
nonlocal используется во вложенных функциях и даёт доступ к переменным внешней функции. Требует, чтобы переменная была определена.
📕 Документация
#урок
global перед переменной говорит нам о том, что она будет глобальной, то есть доступной во всём модуле.
nonlocal используется во вложенных функциях и даёт доступ к переменным внешней функции. Требует, чтобы переменная была определена.
📕 Документация
#урок
📌 Получаем курс валют
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
📕 Документация
🐙 Github
#урок
Узнать цену биткоина в $ или получить стоимость доллара в рублях. Всё это можно сделать с помощью forex-python.
Установка:
pip install forex-python
На самом деле это просто клиент для этого сайта. Список доступных валют можно посмотреть тут. Также модуль может конвертировать одну валюту в другую.📕 Документация
🐙 Github
#урок
📌 Асинхронная замена requests
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
📕 Документация
#урок
С помощью aiohttp мы можем не только составлять запросы, а также создавать HTTP-серверы.
Установка:
pip install aiohttp
Для быстрой работы DNS: pip install aiodns
.Помимо того, что модуль асинхронный, он ещё и поддерживает Middlewares, сигналы, подключаемую маршрутизацию и многое другое.
📕 Документация
#урок
🧩 Топ-16 Python-приложений в реальном мире.
• За последние несколько лет технологии вокруг нас поменялись почти во всех аспектах. Мы живем в мире, где во главе угла стоит программное обеспечение, а за почти любой службой стоит какая-нибудь строчка кода. Индустрия путешествий, банкинг, образование, исследования, военная сфера — лишь немногие из тех, кто полагается на ПО.
• Любой софт написан на каком-то языке программирования. А число последних лишь растет. Однако одним из самых популярных в мире на сегодня является Python. В этой статье рассмотрим примеры реальных приложений, работающих на этом языке.
🧷 https://pythonru.com/baza-znanij/primery-programm-na-python
#Статья
• За последние несколько лет технологии вокруг нас поменялись почти во всех аспектах. Мы живем в мире, где во главе угла стоит программное обеспечение, а за почти любой службой стоит какая-нибудь строчка кода. Индустрия путешествий, банкинг, образование, исследования, военная сфера — лишь немногие из тех, кто полагается на ПО.
• Любой софт написан на каком-то языке программирования. А число последних лишь растет. Однако одним из самых популярных в мире на сегодня является Python. В этой статье рассмотрим примеры реальных приложений, работающих на этом языке.
🧷 https://pythonru.com/baza-znanij/primery-programm-na-python
#Статья
PythonRu
Что можно написать на Python, примеры программ: сайты, игры и приложения
Удовольствие от написания Python-кода заключается в возможности создавать короткие, лаконичные и читаемые классы, которые выражают большой объем логики в
📌 Алгоритм бинарного поиска
Если у вас есть отсортированный список и вам нужно найти элемент или добавить его так, чтобы порядок не изменился, взгляните в сторону этого алгоритма.
Он намного быстрее чем простой проход по списку (для тех, кто шарит: O(log n) vs O(n)) и, к тому же, встроен в Python (модуль bisect).
📕 Документация
#урок
Если у вас есть отсортированный список и вам нужно найти элемент или добавить его так, чтобы порядок не изменился, взгляните в сторону этого алгоритма.
Он намного быстрее чем простой проход по списку (для тех, кто шарит: O(log n) vs O(n)) и, к тому же, встроен в Python (модуль bisect).
📕 Документация
#урок
📌
Вызывается после
#урок
__init__
vs __new__
__new__(cls)
создаёт экземпляр класса. Это метод, который вызывается когда пишем AnyClass()
. __init__(self)
инициализирует класс, то есть задаёт все переданные значения. Вызывается после
__new__
только если метод вернул такой же тип, что и класс, в котором он определён #урок
📌 Что такое
Вот вы написали
Избавиться от мусора можно, если записать в
📕 Документация
#урок
__all__
?Вот вы написали
from module import *
и к вам в код попало куча объектов, которые используются только внутри модуля.Избавиться от мусора можно, если записать в
__all__
список имён всех объектов (классы, функции, переменные), которые надо импортировать.📕 Документация
#урок
📌 Делаем вычисления более точными
Поскольку люди не могут перевести некоторые числа с плавающей запятой в двоичный вид, мы получаем это:
Исправить проблему можно с помощью decimal. Модуль умеет быстро и правильно округлять арифметические операции с плавающей запятой.
И это всё тот же float. То есть вы можете складывать значения, вычитать, умножать, делить, сравнивать, и так далее.
#урок
Поскольку люди не могут перевести некоторые числа с плавающей запятой в двоичный вид, мы получаем это:
0.1 + 0.2 = 0.30000000000000004
.Исправить проблему можно с помощью decimal. Модуль умеет быстро и правильно округлять арифметические операции с плавающей запятой.
И это всё тот же float. То есть вы можете складывать значения, вычитать, умножать, делить, сравнивать, и так далее.
#урок
📌 Лучше чем Pandas & NumPy
agate используется для анализа данных, их обработки и вывода (в виде графиков, например). Раньше библиотеку знали как journalism.
Установка:
#урок
agate используется для анализа данных, их обработки и вывода (в виде графиков, например). Раньше библиотеку знали как journalism.
Установка:
pip install agate
Позиционирует она себя как упрощённая альтернатива NumPy и Pandas. Вы выполняете те же задачи, но при этом пишите меньше и код становится в разы понятнее.#урок
📌 Модуль inspect
С ним вы окунётесь в глубины Python и познаете принципы его работы... Почти. На самом деле он просто вытаскивает данные из объекта или делает какие-то проверки.
📕 Документация
#урок
С ним вы окунётесь в глубины Python и познаете принципы его работы... Почти. На самом деле он просто вытаскивает данные из объекта или делает какие-то проверки.
signature(obj)
— то, как у функции определены аргументы. Используйте, если не понимаете, почему float(x='1')
выдаёт ошибку в Python 3.9.inspect.getmro(class)
— если нужно узнать иерархию классов.📕 Документация
#урок
📌
#урок
__getattr__
и __getattribute__
__getattribute__
вызывается каждый раз, когда мы пытаемся получить атрибут, даже если это произошло внутри класса с помощью self.__getattr__
вызывается только в том случае, если атрибут не был найден. Его можно спокойно переопределять.#урок
📌 Метод str.split(sep)
Он разделяет строку по sep, но у него есть свои особенности.
И первое, это если sep не указан, то есть None: тогда несколько пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
📕 Документация
#урок
Он разделяет строку по sep, но у него есть свои особенности.
И первое, это если sep не указан, то есть None: тогда несколько пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
''
. Также, разделение пустой строки всегда вернёт ['']
.📕 Документация
#урок