📌 Работаем с приложением из терминала
Каждый раз получать данные через
Установка:
Если модуль вам подходит, можете начать с документации.
#урок
Каждый раз получать данные через
input()
неудобно. В таком случае лучше создать CLI API, но это трудно и долго... Если не использовать click.Установка:
pip install click
Библиотека мало того, что легко настраивается, так ещё и самостоятельно генерирует страницу помощи с полученными параметрами. Если модуль вам подходит, можете начать с документации.
#урок
📌 Зачем нужна
Эта переменная нужна для проверки, модуль импортировали или же запустили как отдельный файл.
Если скрипт запущен отдельно, он получает имя
Таким образом можно избежать неожиданного поведения, ведь весь код при импорте выполняется абсолютно. Проверка
Все эти особенности описаны в документации Python.
#теория
__name__
?Эта переменная нужна для проверки, модуль импортировали или же запустили как отдельный файл.
Если скрипт запущен отдельно, он получает имя
'__main__'
, а если импортирован, то имя модуля (файла).Таким образом можно избежать неожиданного поведения, ведь весь код при импорте выполняется абсолютно. Проверка
__name__
, к слову, считается хорошей практикой. Никогда не узнаешь, как твой скрипт будут использовать.Все эти особенности описаны в документации Python.
#теория
📌 Работаем с таблицами в Python
Отображать данные в таблице довольно удобно, но вот реализовать такую функцию сложно. Хорошо, что это сделали за нас создатели prettytable.
Установка:
Вывод также очень легко настраивается, подробнее об этом тут.
#урок
Отображать данные в таблице довольно удобно, но вот реализовать такую функцию сложно. Хорошо, что это сделали за нас создатели prettytable.
Установка:
pip install prettytable
Вы можете загружать значения из базы данных, csv-файлов или ручками добавлять информацию. После можете выводить в разных формата: CLI (терминал), JSON, HTML.Вывод также очень легко настраивается, подробнее об этом тут.
#урок
📌 Цепочка операторов
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. Вы выполняете те же задачи, но при этом пишите меньше и код становится в разы понятнее.#урок