Python

Делаем свой asyncio на основе Python генераторов (Чтобы понять как устроены asyncio и корутины)

Если вы когда нибудь использовали asyncio, то скорее всего слышали что корутины(coroutine), которые являются основой asyncio, сделаны на основе Python генераторов(generator). Но не всем сразу понятно как именно это сделано.

Мы знаем что генераторы в Python - это функции с ключевым словом yield внутри. И они работают как обычные итераторы. Генераторы не возвращают все значения сразу, а работают "лениво" (lazy), возвращая следующее значение только когда нужно, т.е. когда итерация доходит до следующего элемента. А до этого момента генератор стоит на месте и ждет, пока в этот момент работает другой код. Получается, когда мы используем генераторы, у нас есть несколько потоков выполнения?

Давайте в этом вместе разбираться. Попробуем использовать генераторы в вместо async функций в asyncio.  

Читать дальше →
239 0 27 Alisher Alikulov
Отладка Python кода в PyCharm (Debugging)

Отладка кода или Debugging - это поиск ошибок в коде и изучение как работает ваш код. 

Отладка очень полезна когда вы не можете понять почему программа выдала тот или иной результат, почему так долго работает или выдает ошибку. 

Встроенный в PyCharm отладчик кода(Debugger) это очень удобный инструмент для понятия вашего кода. С помощью него вы сможете понять в каком порядке работает ваш код, какое значение у каждой переменной в каждый момент времени и в какой строчке происходит ошибка. 

И так, поехали.

Читать дальше →
718 0 18 Alisher Alikulov
Работа в терминале в Windows, Linux и MacOS (cli, shell, bash, cmd)

Интерфейс командной строки (Command line interface или CLI) - это один из первых интерфейсов взаимодействия с пользоватлем. Но до сих пор очень даже актуальный и востребованный.


CLI - это текстовый способ ввода и вывода информации. То есть вы печатаете команду и видите текстовый результат её работы.


Он зародился в 1960-х годах и унаследовался от телетайпов и печатных машин. Все эти годы активно использовался всеми владельцами компьютеров, пока не появились графические интерфейсы. В середине 1990-х годов графические интерфейсы начали массово завоёвывать рынок и компьютеры стали доступны для большего количества людей. Ведь, согласитесь, перетаскивать файлы, нажимать кнопки мышкой или пальцем и видеть эти кнопки, а так-же фотографии и графики намного интереснее и удобнее, чем вводить команды на клавиатуре и видеть текстовый ответ :)
Но у интерфейса командной строки есть важные преимущества! У него намного лучше отзывчивость, быстрее отображается результат и вы быстрее и более точно сделаете нужное вам действие (если знаете команды, конечно же). Так же у вас больше контроля над программой запущенной в терминале.

Читать дальше →
19319 0 54 Gizzat Ablakov
Делаем простого телеграм бота на Python

В этой статье я покажу как сделать простого бота для Телеграм, который умеет конвертировать валюту. 

У вас должен быть установлен Python 3.  Если нет, то вы можете прочитать здесь как это сделать на Windows.

Телеграм бот работает очень просто. Вы запускаете свою программу написанную на Python, она связывается с серверами Телеграма и получает от них сообщения от пользователей, которые пишут вашему боту. Ваша программа может отвечать на эти сообщения. 

Читать дальше →
6802 0 43 Alisher Alikulov
Как установить Python 3 на Windows?

Чтобы начать писать прграммы на языке Python, нужно обязательно скачать интерпретатор языка Python и все необходимое для выполнения Python-кода. Также вам нужна программа для написания кода(редактор). Я рекомендую для начала Sublime Text

Интерпретатор - это программа, которая будет считывать ваш код и исполнять его.

В этой статье я расскажу как скачать его на Windows 7 и Windows 10.

 

Читать дальше →
8562 0 48 Alisher Alikulov
Юнит-тесты на Python на примере функции находящей n-ное число Фибоначчи

Юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули программы.

Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

В python для написания unit тестов рекомендуется использовать библиотеку unittest. О нем мы и сейчас поговорим. 

Читать дальше →
2117 0 58 Alisher Alikulov