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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Что нового в 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
Что выведет код выше?
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'

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

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

В 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