📌 Что такое PEP?
Python Enhancement Proposals — предложения по улучшению Python. Самый лучший источник знаний по этому языку.
Здесь описываются не только предложения, как улучшить Python, но и как сам по себе работает этот язык.
Самым популярным представителем PEP является PEP 8 — правила по оформлению кода, написанного на Python.
Вот ещё несколько PEP'ов, которые можно почитать: PEP 343 (with), PEP 557 (dataclasses). Все можно найти на PEP 0.
#урок
Python Enhancement Proposals — предложения по улучшению Python. Самый лучший источник знаний по этому языку.
Здесь описываются не только предложения, как улучшить Python, но и как сам по себе работает этот язык.
Самым популярным представителем PEP является PEP 8 — правила по оформлению кода, написанного на Python.
Вот ещё несколько PEP'ов, которые можно почитать: PEP 343 (with), PEP 557 (dataclasses). Все можно найти на PEP 0.
#урок
📌 else в цикле
Да-да, else есть и у циклов. Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится. Так удобно выполнять код до первого "исключения" в логике.
📕 Документация
#урок
Да-да, else есть и у циклов. Этот блок существует и выполняется только если цикл завершил свою работу без вызова break.
Если на пути цикл встретит continue или появится ошибка, то код из else всё равно выполнится. Так удобно выполнять код до первого "исключения" в логике.
📕 Документация
#урок
📌 Учим приложения общаться друг с другом
Как-то приложения должны делится информацией илля этого есть прекрасный фреймворк - hug. Он быстро создаёт API, с помощью которого можно взаимодействовать с приложением.
Установка:
Всё очень легко, копируем пример с официального сайта и запускаем с помощью
#урок
Как-то приложения должны делится информацией илля этого есть прекрасный фреймворк - hug. Он быстро создаёт API, с помощью которого можно взаимодействовать с приложением.
Установка:
pip3 install hug
С его помощью можно быстро написать API для браузера (HTTP) или терминала (CLI). Также он считается самым простым фреймворком для создания оболочки взаимодействия пользователя с приложением.Всё очень легко, копируем пример с официального сайта и запускаем с помощью
hug -f file.py
. Потом открываем браузер и переходим по http://127.0.0.1:8000/echo.#урок
📌 Помощники цикла
Эти функции упрощают работу при работе с итерируемыми объектами. Использовать их можно как угодно, но чаще всего они встречаются рядом с for.
Если вы что-то не поняли, то можете посетить документацию: enumerate, zip и reversed.
#урок
Эти функции упрощают работу при работе с итерируемыми объектами. Использовать их можно как угодно, но чаще всего они встречаются рядом с for.
enumerate(iter, start=0)
— возвращает кортеж типа (индекс, значение). Если передать второй параметр, то индекс сместиться на start единиц. reversed(iter)
— проходится по объекту задом наперёд. Если это невозможно, выдаёт ошибку.zip(*args)
— параллельно проходит по всем объектам, возвращая по элементу с каждого. Если вы что-то не поняли, то можете посетить документацию: enumerate, zip и reversed.
#урок
📌 Встроенные функции
Встроенные функции — это те, которые доступны из любого места в коде.
Документация
#урок
Встроенные функции — это те, которые доступны из любого места в коде.
print
, float
, int
, str
— всё это относится к ним.enumerate, zip, reversed
— функции, помогающие при работе с итерируемым объектом (список, множество, словарь).getattr
, hasattr
, setattr
— функции для работы с атрибутами класса (получить значени, есть ли атрибут, задать значение). map
, filter
— итераторы, которые выполняют какие-то действия (что-то меняют или убирают).Документация
#урок
📌 Работаем с приложением из терминала
Каждый раз получать данные через
Установка:
Если модуль вам подходит, можете начать с документации.
#урок
Каждый раз получать данные через
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).
📕 Документация
#урок