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
⚡️ Задачка с собеседования | #Easy

Условие:

Необходимо перевести hex строку в rgb. Функция принимает строку с hex, а возвращает кортеж с тремя элементами: r, g ,b. Входные данные всегда будут правильные, их проверять не нужно.

Примеры:

hex_to_rgb('ffffff') -> (255, 255, 255)
hex_to_rgb('000000') -> (0, 0, 0)
hex_to_rgb('12A2B6') -> (18, 162, 182)

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

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

Знаете, в чём проблема модуля random? Он генерирует псевдослучайные числа. То есть, зная некоторую информацию, вы можете предсказать результат работы.

Но разработчики решили и эту проблему. В python 3.6 они добавили модуль secrets, который должен использоваться для криптографии.

secrets.choice(seq) — выбирает случайные значения из последовательности.

token_bytes, token_hex, token_urlsafe — генерирует случайный токен, состоящий из битов, строки с 16-ричными значениями или случайными символами, доступными для передачи по URL.

#миниурок #secrets
⚡️ Используем вики

wikipedia
— удобная библиотека, которая создаёт запрос и обрабатывает ответ.

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

search(req)
— выполняет поиск по википедии и возвращает список с возможными результатами.

page(req) — находит страницу по запросу req, возвращает класс WikipediaPage.

summary(req) — возвращает краткую информацию по искомому материалу.

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

Условие:

Вам нужно отсортировать список с оценками на основе английской системы. Всего 5 символов, в порядке убывания: A, B, C, D, F.

Примеры:

sort_grades(['A', 'B', 'C', 'C', 'F', 'A']) -> ['F', 'C', 'C', 'B', 'A', 'A']
sort_grades(['b', 'c', 'C', 'f', 'A']) -> ['F', 'C', 'C', 'B', 'A']
sort_grades([]) -> []

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

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

UUID
— стандарт, позволяющий задать уникальный номер. Например, для 10 триллионов uuid, шанс появления одинаковых значений будет 0.00000006.

Для работы с ним в python существует модуль uuid. У этого протока есть 5 версий, но мы рассмотрим только три:

uuid1() — Генерирует уникальный номер на основе MAC-адреса и времени во время создания.

uuid3(namespace, name) — Создаёт уникальное число на основе namespace (uuid) и name (string).

uuid4() — просто генерирует случайное значение.

Если вам стало интересно, то, как обычно, рекомендуем посетить документацию.

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

Условие:

В этот раз вам нужно перевести время ожидания в понятный для человека формат. На вход идут секунды, а на выход строка, показывающая, сколько часов, минут и секунд осталось ждать

Примеры:

to_human_dur(1) -> '1 second'
to_human_dur(62) -> '1 minute and 2 seconds'
to_human_dur(3600) -> '1 hour'
to_human_dur(3662) -> '1 hour, 1 minute and 2 seconds'

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

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

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

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

Заметно улучшена производительность. Например, str(), bytes(), bytearray() стали приблизительно на 30% быстрее.

Улучшена работа с типами. Теперь, как видно из примера, не нужно импортировать typing, достаточно воспользоваться оператором объединения типов.

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

#теория
Как освоить Python и применять его в аналитике данных

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

На открытом занятии Нетологии «Знакомство с Python для анализа данных» вы узнаете, какими преимуществами относительно других языков обладает Python в сфере аналитики, какие аналитические задачи он помогает решать, как его освоить и сколько времени это займёт.
⚡️ Три помощника при работе с циклами

Эти три встроенные функции упростят вам работу с итерируемыми объектами.

enumerate(iter, start=0) — проходится по итератору и возвращает кортеж (индекс, значение). Если задать второй параметр, то индекс сместиться на start единиц.

zip(a, b, c...) — параллельно проходит по всем объектам, возвращая по элементу с каждого.

reversed(obj) — просто переворачивает obj, иначе выдаёт ошибку.

Если вы что-то не поняли, то можете посетить документацию: enumerate, zip и reversed.

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

Условие:

В этот раз вам нужно название переменных из других стилей перевести в camel case.

Примеры:

to_camel('python_community_ru') -> 'pythonCommunityRu'
to_camel('Python-community-Ru') -> 'PythonCommunityRu'

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

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

Хеширование — превращение строки какой-то длинны в набор байтов фиксированной длины. Все хеш-функции хранятся в модуле hashlib.

Используется оно для сравнения больших файлов при загрузке, иногда для хранения паролей (чего делать не стоит) и ещё много для чего.

Первым делом нам стоит создать hash-объект. После — добавляем в него данные с помощью update(byte_data), и получаем хеш с помощью digest() или hexdigest().

Если вам стало интересно, то стоит посетить документацию.

#миниурок #ITPython