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
Что выведет код выше?
Anonymous Quiz
14%
1 2
46%
3 4
7%
1 4
14%
3 2
9%
Ошибку
8%
Узнать ответ
⚡️ Асинхронное программирование

Давайте приготовим ужин. Закидываем пельмешки в кастрюлю, ждём 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%
Узнать ответ