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

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

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

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

Условие:

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

Примеры:

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

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

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

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

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

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

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

#миниурок #ITPython
Что выведет код выше?
Anonymous Quiz
19%
3
25%
4
23%
8
23%
Ошибку
10%
Узнать ответ
⚡️ Кодировка base64

base64
— система, переводящая набор байтов в строку состоящую только из A-Z, a-z, 0-9, +, /.

Появилась она очень давно, ещё когда не решили, сколько бит должно быть в одном байте. Решение принять 8 бит за 1 байт сделало неприятно программам, которые считали байт за 6 или 7 бит.

Сообщения обрезались, поскольку последний бит не учитывался, но с этим помог справиться base64, который использовал 2^6 (64) символа.

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

Для работы с ней в python существует модуль base64 и методы b64encode(s), b64decode(s) для кодировки и расшифровывания.

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

Условие:

Вам необходимо превратить целое число в ip-адрес.

Примеры:

int_to_ip(32) -> '0.0.0.32'
int_to_ip(0) -> '
0.0.0.0'
int_to_ip(2149583361) -> '
128.32.10.1'

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

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

В python есть классный модуль — sched, внутри которого реализован простой планировщик событий.

Первым делом, создаём класс scheduler(timefunc, delayfunc), где timefunc — функция для измерения времени, а delayfunc — функция для ожидания.

После — добавляем события с помощью scheduler.enter(delay, priority, func). Также мы можем передать argument и kwargs, таким образом отправив что-то функции.

И, что-бы всё начало работать, вызываем run().

Кроме всего этого, модуль может работать в многопоточном режиме. Об этом вы можете прочитать в документации.

#миниурок #sched
⚡️ Управляем мышкой и клавиатурой

Для решения этой задачи придумали pyautogui, позволяющий управлять компьютером прямо из Python.

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

pyautogui.position()
— позволяет узнать местоположения мышки на экране, в то время как pyautogui.size() возвращает размер экрана.

pyautogui.click(x, y) — нажимает левой кнопкой мыши в позиции x, y.

pyautogui.typewrite(text) — печатает text на клавиатуре, а hotkey('ctrl', 'c') нажимает на горячие клавиши.

Если вам стало интересно, то советую ознакомится с cheat sheet по этой теме.

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

Условие:

Вам сказали сделать американские горки. Парк закупил несколько модулей с разной высотой. Нужно их расположить так, что бы суммарный перепад высот был максимальным. Высчитывается по формуле: |e1 – e2| + |e2 – e3| + |e(n-1) - en|

Примеры:

calculate([3, 1, 7, 5, 9]) -> 22 # [3, 9, 1, 7, 5]
calculate([1, 6, 13, 9, 3, 2]) -> 40
calculate([2, 3, 4]) -> 3

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

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

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

Устнаовка: pip install youtube-dl

Пользоваться утилитой можно из терминала с помощью команды youtube-dl url.

В python же просто импортируется модуль и создаётся класс для работы.

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

#миниурок #youtube
⚡️ Алгоритм бинарного поиска

Если вы слышали про теорию алгоритмов, то можете почувствовать разницу между O(log n) (такую стоимость даёт бинарный поиск) и O(n) (а такую — обычный).

Проблема бинарного поиска в том, что все данные должны быть отсортированы. Если у вас есть такой список, то стоит попробовать bisect.

Модуль хранит внутри себя алгоритм бинарного поиска. Сам по себе он бесполезный, но на его основе можно сделать множество классных функций.

Подробнее можете почитать в документации, там также есть парочка неплохих примеров.

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

Условие:

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

Примеры:

sum_miss([1, 6, 3, 2]) -> 9 # 4 + 5 = 9
sum_miss([1, 2, 3]) -> 0
sum_miss([4, 5, 3, 2, 0]) -> 1

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

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