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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Задачка с собеседования | #Medium

Условие:

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

Пример:

permutations("a") -> ['a']
permutations("ab") -> ['ba', 'ab']
permutations("abc") -> ['abc', 'cba', 'bca', 'bac', 'cab', 'acb']

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

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

six
— модуль, позволяющий уменьшить разницу между Python 2 и Python 3. Таким образом, можно писать код и запускать его на разных версиях с минимальными изменениями.

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

Первым делом вам стоит узнать об константах PY2 и PY3, которые обозначают, в какой версии запущена программа.

В модуле также есть совместимость для списков и проверки типов. Подробнее — тут.

Библиотека довольно удобная и эффективная, но создаёт дополнительную зависимость, поэтому использовать её или нет — решаете вы.

#миниурок #six
⚡️ Ускоряем выполнение кода

Для этого отлично подойдёт модуль 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
⚡️ Задачка с собеседования | #Easy

Условие:

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

Пример:

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

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

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

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

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

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

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

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

#миниурок #delorean
Что выведет код выше?
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