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
⚡️ Классы и особые атрибуты

__init__ — вызывается при создании объекта. Перед ним вызывается __new__ — статический класс для создания образца класса.

__str__, __repr__ — строковое представление объекта для пользователя (__str__) и для программиста (__repr__).

__gt__, __eq__, __lt__ — методы сравнения >, ==, <. Отдельные методы для !=, >=, <= и других операторов.

#теория
Мы ищем Python-разработчиков в штат Яндекс.Практикума.
Создаём социально значимый продукт и бизнес: помогаем нашим студентам получить новую цифровую профессию или навык.

Бэкенд-разработчику в Практикуме предстоит:
→ проектировать и внедрять новые форматы прохождения курсов, проектных работ;
→ добавлять на платформу новые тренажёры для студентов;
→ внедрять запуск кода на новых языках программирования;
→ развивать инструменты для машинного обучения и анализа данных;
→ проектировать архитектуру и инфраструктуру для новых внешних и внутренних сервисов;
→ ускорять работу платформы во всем мире, чтобы помогать Практикуму завоевывать новые рынки.

Мы будем рады видеть в нашей команде человека, который
— умеет программировать на языке Python,
— знает SQL и работал с реляционными базами данных,
— работал в Docker и с различными облачными сервисами,
— разрабатывал веб-сервисы.

Вас ждёт работа с гибким графиком: удалённая или в офисе с тренажёрным залом и йогой. А ещё:
◾️ интересные задачи, возможность влиять на процесс и результат;
◾️ сильная команда, с которой можно расти;
◾️ опционная программа;
◾️ программа жилищных заи‌мов под 3% или без процентов;
◾️ ДМС для вас и 80% стоимости ДМС для супругов и детеи‌;
◾️ премии каждые полгода для всех, кто успешно прошел ревью;
◾️ компенсация оплаты питания и мобильнои‌ связи;
◾️ оплата обучения и участия в профильных конференциях
◾️ скидки у партнёров компании.

Если вы не из Москвы — поможем с переездом.
→Почитать подробности и откликнуться на вакансию
⚡️ Задачка с собеседования | #Medium

Условие:

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

Пример:

wave('Hello') -> ['Hello', 'hEllo', 'heLlo', 'helLo', 'hellO']
wave('wave') -> ['Wave', 'wAve', 'waVe', 'wavE']
wave('TeST') -> ['Test', 'tEst', 'teSt', 'tesT']

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

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

В модуле sys есть переменные, отвечающие за ввод/вывод: stdin, stdout, stderr. Мы можем управлять ими с помощью Python.

stdin — используется для интерактивного ввода. Его использует input().

stdout — используется для вывода с помощью print() и для подсказок в input().

stderr — сюда идут все ошибки при обработке программы.

Работа с потоками такая же, как и с файлами, с помощью функций read() и write(str).

#миниурок #sys
⚡️ Расширяем возможности Python

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

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

Там есть функции для работы с коллекциями: merge, join, merge_with, walk, select. Для работы с последовательностью: take, first, lremove.

Также есть полезные декораторы. Обработка ошибок: ignore, limit_error_rate, retry. Работа с логами: log_calls, log_errors.

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

Условие:

У вас есть три стопки фишек разного цвета: белые, зелёные и чёрные. В первой — только белые, во второй — только зелёные и в третьей — только чёрные.

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

Пример:

solution([1, 1, 1]) -> 1 # На третий день останется только одна фишка
solution([1, 1, 2]) -> 2
solution([8, 2, 8]) -> 9

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

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

Pympler
— инструмент разработки для мониторинга и анализа объектов в памяти у работающего приложения Python.

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

Он объединяет в себе несколько проектов:

Asizeof — предоставляет информацию об одном или о нескольких объектах.

muppy — используется для онлайн-мониторинга приложений на Python.

classtracker — обеспечивает автономный анализ времени жизни объектов.

О всех функциях модуля можно почитать в документации.

#миниурок #pympler
#python_quiz

Объяснение: при a | b, данные из b приоритетные, чем данные из словаря a.
⚡️ Немного про словари

Все умеют работать со словарями, но у него есть небольшие особенности, которые могут упростить работу.

Мы можем задать значение по умолчанию для какого-то ключа с помощью setdefault(key, value). Но быстрее будет defaultdict из collections.

С помощью функции get(key, value=None) можно получить значения ключа или, если ключ не найден, value.

Благодаря fromkeys(iter, value=None) можно быстро создать словарь. А используя оператор | можно объединить два словаря.

#теория
Что выведет код выше?
Anonymous Quiz
30%
True
32%
False
30%
Ошибку
8%
Узнать ответ
⚡️ Юмор в Python

pyjokes
— модуль, хранящий в себе набор шуток про Python, Чака Норриса и некоторые другие.

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

Если посадить миллион обезьян за миллион клавиатур, то одна из них напишет программу на Java. Остальные будут писать на Perl.

Шрёдингер и веб: если я не посмотрю на сайт в Internet Explorer, то есть вероятность, что он выглядит нормально.

Я ходил по улице, где дома были пронумерованы 8к, 16к, 32к, 64к, 128к, 256к и 512к. Это было путешествие по переулку памяти.

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

Условие:

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

Пример:

same([2, 5, 3], [9, 4, 25]) -> True
same([1, 0, 5], [1, 2, 24]) -> False
same([], []) -> True

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

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

Можно самостоятельно парсить sys.argv, но зачем усложнять программу, если существует библиотека typer.

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

Это — простой модуль, отлично совместимый с редактором кода и довольно-таки интуитивно понятный. Он предназначен для FAST API интерфейсов командной строки.

Библиотека автоматически генерирует usage сообщение и страницу помощи (--help). Если вам стало интересно, можете посетить документацию.

#миниурок #typer