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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
Что выведет код выше?
Anonymous Quiz
25%
1 2 3 4
12%
1 3 2 4
9%
4 2 3 1
26%
Ошибку
28%
Узнать ответ
⚡️ Удаляем объекты без особого труда

Обратимся для этого к оператору del, который позволяет удалить имя переменной.

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

Учтите, что del может удалять не только типы, но и элементы внутри списка или словаря. Правда, это не работает с неизменяемыми типами по типу строки или кортежа.

Стоит заметить, что разыменование происходит в пределах видимости. То есть, если мы попробуем удалить переменную с global, то она никуда не денется и будет всё ещё доступна.

Попробуйте сами!

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

Условие:

Необходимо написать код, который будет превращать привычный rgb формат в hex. И всё ;)

Пример
:

assert rgb_to_hex(255, 255, 255) == "FFFFFF"
assert rgb_to_hex(255, 0, 255) == "FF00FF"
assert rgb_to_hex(14, 0, 128) == "0E0080"
assert rgb_to_hex(0, 0, 0) == "000000"

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

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

Декоратор — «обёртка» над другой функцией. Она позволяет менять поведение функции, при этом не меняя код.

Чаще всего его можно встретить при разработке веб приложений (боты или сайты, например)

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

Понимаю, звучит всё очень сложно, так что будет в разы легче разобраться на примере.

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

#теория #декоратор
This media is not supported in your browser
VIEW IN TELEGRAM
АЙТИШНИК?
Устал часами искать нужную инфу?


🌍 Канал ITYoutubersотборные видео мира IT со всего рунета.

Расскажет про: новости, верстку, фронт и бэк энд, дизайн и многое другое.

🔥 ITYoutubers — твой личный помощник в подборе правильного медиаконтента.

Подпишись и начни развиваться в IT ещё быстрее!
⚡️ Создаём графическое приложение

pyglet
— модуль, позволяющий легко создавать программы, взаимодействующие с пользователем через изображение. Он работает в Windows, Linux и даже в OS X.

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

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

Хотите изучить его подробнее? Ловите ссылку на документацию.

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

Условие:

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

Пример — на изображении выше.

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

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

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

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

Таким образом, если мы создадим класс с __call__, то мы получим ту же самую функцию, которую можно использовать как декоратор.

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

#теория #декоратор
📌 Что выведет этот код?
Anonymous Quiz
10%
aa
16%
1 2 aa
24%
1 3 aa
25%
Ошибку
25%
Узнать ответ
⚡️ Упрощаем создание декораторов

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

Для этого мы воспользуемся декоратором @wraps из модуля functools — это упрощение для функции functools.update_wrapper.

Её задача — выдавать себя за настоящую функцию, которая использует декоратор. То есть, она подменивает значения name и doc на значения реальной функции.

Если мы попытаемся получить имя или документацию функции, использующую декоратор, то мы получим все значения wrapper. Это может сбить некоторые редакторы и программистов с толку, поэтому многие используют @wraps, как на примере выше.

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

Условие:

Нужно написать код, который будет переводить римские символы в привычную нам десятичную систему (про символы можно почитать тут).

Пример:

roman_to_int('XXI') -> 21
roman_to_int('IV') -> 4
roman_to_int('I') -> 1
roman_to_int('MMXXI') -> 2021
roman_to_int('LDVLIV') -> 499

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

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

Для этого воспользуемся typer — модуль с открытым исходным кодом, позволяющий взаимодействовать с приложением из командной строки. В отличие от fire, он интуитивно понятнее и имеет больший функционал.

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

Здесь есть два варианта развития события:

Первый, если у вас всего один метод для работы, то вы можете воспользоваться typer.run, чтобы принять один аргумент — функцию.

Если же команд больше, то создайте класс Typer (на примере выше — app), и воспользуйтесь декоратором command.

После настройки всех функций, просто запустите приложение app().

#миниурок #typer