⚡️ Задачка с собеседования | #Medium
Условие:
В этот раз вам нужно название переменных из других стилей перевести в camel case.
Примеры:
to_camel('python_community_ru') -> 'pythonCommunityRu'
to_camel('Python-community-Ru') -> 'PythonCommunityRu'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
В этот раз вам нужно название переменных из других стилей перевести в camel case.
Примеры:
to_camel('python_community_ru') -> 'pythonCommunityRu'
to_camel('Python-community-Ru') -> 'PythonCommunityRu'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Хеширование
Хеширование — превращение строки какой-то длинны в набор байтов фиксированной длины. Все хеш-функции хранятся в модуле hashlib.
Используется оно для сравнения больших файлов при загрузке, иногда для хранения паролей (чего делать не стоит) и ещё много для чего.
Первым делом нам стоит создать hash-объект. После — добавляем в него данные с помощью
Если вам стало интересно, то стоит посетить документацию.
#миниурок #ITPython
Хеширование — превращение строки какой-то длинны в набор байтов фиксированной длины. Все хеш-функции хранятся в модуле hashlib.
Используется оно для сравнения больших файлов при загрузке, иногда для хранения паролей (чего делать не стоит) и ещё много для чего.
Первым делом нам стоит создать hash-объект. После — добавляем в него данные с помощью
update(byte_data)
, и получаем хеш с помощью digest()
или hexdigest()
.Если вам стало интересно, то стоит посетить документацию.
#миниурок #ITPython
⚡️ Кодировка base64
base64 — система, переводящая набор байтов в строку состоящую только из A-Z, a-z, 0-9, +, /.
Появилась она очень давно, ещё когда не решили, сколько бит должно быть в одном байте. Решение принять 8 бит за 1 байт сделало неприятно программам, которые считали байт за 6 или 7 бит.
Сообщения обрезались, поскольку последний бит не учитывался, но с этим помог справиться base64, который использовал 2^6 (64) символа.
Сейчас же это активно используется в почте и для передачи бинарных файлов. Вы, наверное, могли замечать, что код изображения на странице сохранён в виде этого формата.
Для работы с ней в python существует модуль base64 и методы
#миниурок #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'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо превратить целое число в 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, внутри которого реализован простой планировщик событий.
Первым делом, создаём класс
После — добавляем события с помощью
И, что-бы всё начало работать, вызываем
Кроме всего этого, модуль может работать в многопоточном режиме. Об этом вы можете прочитать в документации.
#миниурок #sched
В python есть классный модуль — sched, внутри которого реализован простой планировщик событий.
Первым делом, создаём класс
scheduler(timefunc, delayfunc)
, где timefunc — функция для измерения времени, а delayfunc — функция для ожидания.После — добавляем события с помощью
scheduler.enter(delay, priority, func)
. Также мы можем передать argument
и kwargs
, таким образом отправив что-то функции.И, что-бы всё начало работать, вызываем
run()
.Кроме всего этого, модуль может работать в многопоточном режиме. Об этом вы можете прочитать в документации.
#миниурок #sched
Что выведет код выше?
Anonymous Quiz
26%
'hello'
9%
''
28%
Ошибку, нельзя задать атрибут
25%
Ошибку, атрибута a не существует
13%
Узнать ответ
⚡️ Управляем мышкой и клавиатурой
Для решения этой задачи придумали pyautogui, позволяющий управлять компьютером прямо из Python.
Установка:
Если вам стало интересно, то советую ознакомится с cheat sheet по этой теме.
#миниурок #pyautogui
Для решения этой задачи придумали 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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам сказали сделать американские горки. Парк закупил несколько модулей с разной высотой. Нужно их расположить так, что бы суммарный перепад высот был максимальным. Высчитывается по формуле: |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 — интересный проект с открытым исходным кодом, позволяющий загружать видео с ютуба и других сервисов.
Устнаовка:
В python же просто импортируется модуль и создаётся класс для работы.
Если вам стало интересно, то рекомендуем посетить документацию.
#миниурок #youtube
youtube-dl — интересный проект с открытым исходным кодом, позволяющий загружать видео с ютуба и других сервисов.
Устнаовка:
pip install youtube-dl
Пользоваться утилитой можно из терминала с помощью команды youtube-dl url
.В python же просто импортируется модуль и создаётся класс для работы.
Если вам стало интересно, то рекомендуем посетить документацию.
#миниурок #youtube
⚡️ Алгоритм бинарного поиска
Если вы слышали про теорию алгоритмов, то можете почувствовать разницу между O(log n) (такую стоимость даёт бинарный поиск) и O(n) (а такую — обычный).
Проблема бинарного поиска в том, что все данные должны быть отсортированы. Если у вас есть такой список, то стоит попробовать bisect.
Модуль хранит внутри себя алгоритм бинарного поиска. Сам по себе он бесполезный, но на его основе можно сделать множество классных функций.
Подробнее можете почитать в документации, там также есть парочка неплохих примеров.
#миниурок #bisect
Если вы слышали про теорию алгоритмов, то можете почувствовать разницу между 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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо сделать функцию, которая принимает список чисел и суммирует значения, которые пропущены в списке, но есть в диапазоне от минимального до максимального числа.
Примеры:
sum_miss([1, 6, 3, 2]) -> 9 # 4 + 5 = 9
sum_miss([1, 2, 3]) -> 0
sum_miss([4, 5, 3, 2, 0]) -> 1
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования