Python Community
12.9K subscribers
1.25K photos
38 videos
15 files
739 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Ускоряем выполнение кода

Для этого отлично подойдёт модуль concurrent.futures — он отлично подойдёт, например, для одновременного копирования файлов или параллельных вычислений.

Первым делом стоит определится, каким образом вы собираетесь разделять выполнения: с помощью потоков или используя процессы.

Далее — создайте экземпляр класса, желательно с помощью with, или самостоятельно вызвать shutdown.

С помощью submit нужно также создать задачу, чтобы получить класс Future.

Теперь с помощью Future вы можете отслеживать выполнение функции.

Например, можно запустить result() и приостановить основный поток в ожидании результата (остальные потоки будут продолжать работать).

Если хотите почитать подробнее, можете сделать это тут.

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

Условие:

Ваша задача — написать собственную реализацию генерации уникального пароля.

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

#Задачка_с_собеседования
⚡️ Одно из решений предыдущей задачи
Что выведет код выше?
Anonymous Quiz
11%
[]
27%
[1, 3, 5]
17%
[2, 4]
29%
Ошибку
17%
Узнать ответ
⚡️ Взаимодействуем с текстом

Для этого идеально подойдёт flashtext — модуль, позволяющий заменять или собирать информацию из строки.

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

Его основное преимущество над regex — скорость выполнения. Библиотека использует свой алгоритм и, таким образом, увеличивает производительность.

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

#миниурок #flashtext
👍1
⚡️ Задачка с собеседования | #Easy

Условие:

Написать простую функцию, которая будет возвращать век, на основе года.

Пример:

get_century(2021) -> 21
get_century(1999) -> 20
get_century(2000) -> 20
get_century(101) -> 2

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

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
👍1
⚡️ Удобно работаем с временем

Идеальное решение для этого — модуль delorean.

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

Библиотека, по сути, является дополнением для обычного datetime, поскольку вы можете легко перевести её класс в datetime. Но, она добавляет свой функционал

Например, в модуле легче редактировать часы, минуты, дни, поддерживается перевод строки в объект с временем, а так же присутствуют другие упрощающие работу программисту функции (например: next_sunday).

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

#миниурок #delorean
👍1
Что выведет код выше?
Anonymous Quiz
12%
1
36%
2
10%
4
28%
Ошибку
14%
Узнать ответ
⚡️ Визуализируем информацию

Dash
— мощный фреймворк с открытым исходным кодом, позволяющий удобно создавать приложения с данными.

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

Модуль оснащён легко настраиваемым интерфейсом и позволяет просматривать данные из браузера, что делает его кроссплатформенным.

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

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

#миниурок #dash
⚡️ Задачка с собеседования | #Easy

Условие:

Написать функцию, которая будет возвращать все числа, на которые делится аргумент функции. Если же аргумент — простое число, то возвращаем строку, как на примере.

Пример:

find_divisors(13) -> 13 - простое число
find_divisors(10) -> [2, 5]
find_divisors(12) -> [2, 3, 4, 6]

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

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Функция iter и её возможности

iter()
— функция, возвращающая объект-итератор.

Если в функции только один аргумент, то он принимает объект коллекции, в котором реализованы методы __iter __ или __getitem __. Если не поддерживается ни один из этих протоколов, то возникнет ошибка TypeError.

Но, есть и другой вариант, когда iter принимает два аргумента. В этом случае первый — функция, а второй — объект для остановки итератора. Он выполняет переданную функцию до того момента, пока она не вернёт второй аргумент.

Таким образом удобно, например, считывать блоки данных из файла и обрабатывать их.

#теория #iter
⚡️ Отлавливаем ошибки

Для этого в Python есть конструкция try/except/else/finally. Здесь будет описано, что они делают:

try — внутри этого оператора располагается код, внутри которого может появиться ошибка.

except ExceptionType as e — "отлавливает" ошибку, сохраняет её как переменную e и выполняет необходимые действия.

else — выполняется, если никаких ошибок не было.

finally — код, который запускается всегда, независимо от того, была ошибка или нет

#теория