Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
712 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Асинхронное программирование

Давайте приготовим ужин. Закидываем пельмешки в кастрюлю, ждём 5 минут, а пока они готовятся, режем хлеб и делаем салатик.

В этом и суть асинхронного программирования. Пока приложение ждёт окончания какого-либо действия, оно может заниматься чем-то другим, более полезным.

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

#миниурок #async
Что выведет код выше?
Anonymous Quiz
48%
True
14%
NaN
33%
Ошибку
6%
Узнать ответ
⚡️ Зависимости? Вы кто такие? Я вас не звал

Python может решать любые задачи за счёт сторонних библиотек (Tensorflow, pygame, Django). Вот их и называют зависимостями.

Проблема зависимостей в том, что, их нужно устанавливать и в том, что любые изменения в библиотеке, если вы захотите обновиться, повлияют на проект.

Но не стоит писать свой Tensorflow, просто потому что, и не стоит ставить funcy только ради одной функции.

А сохранить зависимости можно с помощью pip freeze > requirements.txt (доки). Установить: pip install -r requirements.txt.

#теория
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно написать объединение как в игре 2048.

Примеры:

merge([4, 4, 8, 16]) ➞ [8, 8, 16, 0]
merge([8, 8, 16, 0]) ➞ [16, 16, 0, 0]
merge([16, 16, 0, 0]) ➞ [32, 0, 0, 0]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Атрибуты функций

__name__ возвращает имя функции. __qualname__ — полный путь к функции (ClassC.ClassD.function). __module__ модуль, в котором она находится.

__defaults__кортеж с значениями по умолчанию. __code__ — да-да, вы правильно поняли, код функции.

__globals__ — глобальные значения в модуле, где функция была определена.

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

#теория
⚡️ Виртуальная среда

Сколько у вас проектов на пк? И у каждого свои зависимости. Не хотите перенести их в отдельную папку?

Виртуальная среда — это место, которое изолированно от системы. Создать — python3 -m venv path/to/env.

Запуск — source path/to/env/bin/activate. После можете спокойно python, pip, easy_install. Все действия будут происходить внутри среды.

Преимущества: проекты легче переносятся, чище файл requirements.txt и нет проблем с другими проектами, а также легче полностью избавится от проекта.

#миниурок
Что выведет этот код?
Anonymous Quiz
30%
True
31%
False
31%
Ошибку
8%
Узнать ответ
⚡️ Тестируем код

Если бы люди были роботами, нам бы не приходилось проверять код и pytest был бы никому не нужен.

Но сейчас это самая популярная библиотека для автоматизации тестирования, поэтому её стоит знать.

Она довольно удобная, выводит подробный отчёт, быстро настраивается и даже поддерживает плагины.

Недостатки тоже есть, но они незаметны: доп. зависимость и требует чутка больше знаний, чем unittest.

#миниурок
Что выведет код выше?
Anonymous Quiz
34%
1
26%
None
28%
Ошибку
12%
Узнать ответ
⚡️ Парсим сайты

Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.

Установка: pip install beautifulsoup4

Модуль может парсить HTML и XML файлы и находить на них нужную информацию. Например, найти заголовок (тег h1) или все ссылки на сайте.

Функционал довольно большой и весь список можно найти в документации.

#миниурок #bs4
Что выведет этот код?
Anonymous Quiz
20%
[1, 2, 3]
35%
[0, 1, 2, 3]
36%
[1, 2, 3, 0]
9%
Узнать ответ
⚡️ else в цикле

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

Если появится ошибка или цикл встретит на пути continue, то код из else всё равно сработает.

#теория