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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Объединяем вместе два словаря

В версии Python 3.9 добавили новое действие для словарей — |, что позволяет быстро объединить два словаря. Но как быть с более старыми версиями?

В Python 3.5 и выше можно использовать другое выражение — {**a, **b} (более подробно — тут).

Для ещё более старых версий используют update, как на примере выше.

Учтите, что во всех этих способах повторяющиеся значения перезаписываются на значения из второго словаря.

#теория
⚡️ Не желаете немного отвлечься?

Попробуйте модуль antigravity.

После его установки откройте интерпретатор и пропишите import antigravity.

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

И повеселитесь, и английский прокачаете ;)

Установка:
pip install antigravity
⚡️ Задачка с собеседования | #Easy

Условие:

Написать собственную реализацию шифра rot (подробнее). Функция принимает в себя два параметра: строку, которую необходимо зашифровать и число, на сколько позиций смещается символ (по умолчанию - 13).

Пример:

rot(EBG13 rknzcyr.) -> ROT13 example.
rot(AaBbCcLl.) -> NnOoPpYy.
rot(Ok, now try rot 6, offset = 6) -> Uq, tuc zxe xuz 6

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

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

Для этого идеально подойдёт pillow — мощный инструмент, имеющий множество возможностей и позволяющий быстро редактировать фото.

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

Модуль поддерживает почти все доступные форматы (png, jpg, webp, psd, pdf). Он может накладывать различные эффекты, сжимать фото или считывать информацию попиксельно.

На примере выше вы видите простой преобразователь изображений в jpeg.

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

#миниурок #pillow
⚡️ Создаём графические приложения

Идеальный инструмент для этого — tkinter.

Установка: тут могут быть небольшие проблемы, поэтому сперва стоит посетить этот сайт.

Tk — класс приложения, с него и начинается вся работа.

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

Виджеты — Lable, Button и другие объекты для взаимодействия с пользователем.

Если вы желаете узнать о библиотеке больше, то стоит зайти на сайт документации.

#миниурок #tkinter
⚡️ Задачка с собеседования | #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%
Узнать ответ