⚡️ Классы и особые атрибуты
#теория
__init__
— вызывается при создании объекта. Перед ним вызывается __new__
— статический класс для создания образца класса.__str__
, __repr__
— строковое представление объекта для пользователя (__str__
) и для программиста (__repr__
).__gt__
, __eq__
, __lt__
— методы сравнения >, ==, <. Отдельные методы для !=, >=, <= и других операторов.#теория
Мы ищем Python-разработчиков в штат Яндекс.Практикума.
Создаём социально значимый продукт и бизнес: помогаем нашим студентам получить новую цифровую профессию или навык.
Бэкенд-разработчику в Практикуме предстоит:
→ проектировать и внедрять новые форматы прохождения курсов, проектных работ;
→ добавлять на платформу новые тренажёры для студентов;
→ внедрять запуск кода на новых языках программирования;
→ развивать инструменты для машинного обучения и анализа данных;
→ проектировать архитектуру и инфраструктуру для новых внешних и внутренних сервисов;
→ ускорять работу платформы во всем мире, чтобы помогать Практикуму завоевывать новые рынки.
Мы будем рады видеть в нашей команде человека, который
— умеет программировать на языке Python,
— знает SQL и работал с реляционными базами данных,
— работал в Docker и с различными облачными сервисами,
— разрабатывал веб-сервисы.
Вас ждёт работа с гибким графиком: удалённая или в офисе с тренажёрным залом и йогой. А ещё:
◾️ интересные задачи, возможность влиять на процесс и результат;
◾️ сильная команда, с которой можно расти;
◾️ опционная программа;
◾️ программа жилищных заимов под 3% или без процентов;
◾️ ДМС для вас и 80% стоимости ДМС для супругов и детеи;
◾️ премии каждые полгода для всех, кто успешно прошел ревью;
◾️ компенсация оплаты питания и мобильнои связи;
◾️ оплата обучения и участия в профильных конференциях
◾️ скидки у партнёров компании.
Если вы не из Москвы — поможем с переездом.
→Почитать подробности и откликнуться на вакансию
Создаём социально значимый продукт и бизнес: помогаем нашим студентам получить новую цифровую профессию или навык.
Бэкенд-разработчику в Практикуме предстоит:
→ проектировать и внедрять новые форматы прохождения курсов, проектных работ;
→ добавлять на платформу новые тренажёры для студентов;
→ внедрять запуск кода на новых языках программирования;
→ развивать инструменты для машинного обучения и анализа данных;
→ проектировать архитектуру и инфраструктуру для новых внешних и внутренних сервисов;
→ ускорять работу платформы во всем мире, чтобы помогать Практикуму завоевывать новые рынки.
Мы будем рады видеть в нашей команде человека, который
— умеет программировать на языке 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']
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам нужно создать мексиканскую волну) — список со словами, в которых буквы по очереди становятся в верхнем регистре. На вход идёт слово, состоящее из букв английского алфавита, из которого надо сделать волну.
Пример:
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 — используется для интерактивного ввода. Его использует
stdout — используется для вывода с помощью
stderr — сюда идут все ошибки при обработке программы.
Работа с потоками такая же, как и с файлами, с помощью функций
#миниурок #sys
В модуле sys есть переменные, отвечающие за ввод/вывод: stdin, stdout, stderr. Мы можем управлять ими с помощью Python.
stdin — используется для интерактивного ввода. Его использует
input()
.stdout — используется для вывода с помощью
print()
и для подсказок в input()
.stderr — сюда идут все ошибки при обработке программы.
Работа с потоками такая же, как и с файлами, с помощью функций
read()
и write(str)
.#миниурок #sys
Что выведет код выше?
Anonymous Quiz
40%
True True
46%
True False
5%
False True
3%
False False
5%
Узнать ответ
⚡️ Расширяем возможности Python
funcy — набор полезных функций для работы со списками, последовательностями, словарями и другими часто используемыми типами.
Установка:
Также есть полезные декораторы. Обработка ошибок:
#миниурок #funcy
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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
У вас есть три стопки фишек разного цвета: белые, зелёные и чёрные. В первой — только белые, во второй — только зелёные и в третьей — только чёрные.
Каждый день вы берёте две фишки обязательно разных цветов. Вам нужно посчитать максимальное количество дней, за которые можно потратить все фишки. Количество фишек в каждой стопке идёт в виде списка из трёх целых чисел.
Пример:
solution([1, 1, 1]) -> 1 # На третий день останется только одна фишка
solution([1, 1, 2]) -> 2
solution([8, 2, 8]) -> 9
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Профилировщик Python
Pympler — инструмент разработки для мониторинга и анализа объектов в памяти у работающего приложения Python.
Установка:
• Asizeof — предоставляет информацию об одном или о нескольких объектах.
• muppy — используется для онлайн-мониторинга приложений на Python.
• classtracker — обеспечивает автономный анализ времени жизни объектов.
О всех функциях модуля можно почитать в документации.
#миниурок #pympler
Pympler — инструмент разработки для мониторинга и анализа объектов в памяти у работающего приложения Python.
Установка:
pip install Pympler
Он объединяет в себе несколько проектов:• Asizeof — предоставляет информацию об одном или о нескольких объектах.
• muppy — используется для онлайн-мониторинга приложений на Python.
• classtracker — обеспечивает автономный анализ времени жизни объектов.
О всех функциях модуля можно почитать в документации.
#миниурок #pympler
Что выведет код выше?
Anonymous Quiz
43%
6 9 4
7%
6 5 4
6%
2 9 4
14%
2 5 4
17%
Ошибку
12%
Узнать ответ
⚡️ Немного про словари
Все умеют работать со словарями, но у него есть небольшие особенности, которые могут упростить работу.
Мы можем задать значение по умолчанию для какого-то ключа с помощью
С помощью функции
Благодаря
#теория
Все умеют работать со словарями, но у него есть небольшие особенности, которые могут упростить работу.
Мы можем задать значение по умолчанию для какого-то ключа с помощью
setdefault(key, value)
. Но быстрее будет defaultdict из collections.С помощью функции
get(key, value=None)
можно получить значения ключа или, если ключ не найден, value.Благодаря
fromkeys(iter, value=None)
можно быстро создать словарь. А используя оператор |
можно объединить два словаря.#теория
⚡️ Юмор в Python
pyjokes — модуль, хранящий в себе набор шуток про Python, Чака Норриса и некоторые другие.
Установка:
Шрёдингер и веб: если я не посмотрю на сайт в Internet Explorer, то есть вероятность, что он выглядит нормально.
Я ходил по улице, где дома были пронумерованы 8к, 16к, 32к, 64к, 128к, 256к и 512к. Это было путешествие по переулку памяти.
#миниурок #pyjokes
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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Дано два списка, вам нужно проверить, являются ли элементы внутри первого списка квадратом элементов из второго списка. Порядок в данном случае не имеет значения.
Пример:
same([2, 5, 3], [9, 4, 25]) -> True
same([1, 0, 5], [1, 2, 24]) -> False
same([], []) -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Создаём интерфейс командной строки
Можно самостоятельно парсить sys.argv, но зачем усложнять программу, если существует библиотека typer.
Установка:
Библиотека автоматически генерирует usage сообщение и страницу помощи (--help). Если вам стало интересно, можете посетить документацию.
#миниурок #typer
Можно самостоятельно парсить sys.argv, но зачем усложнять программу, если существует библиотека typer.
Установка:
pip install typer
Это — простой модуль, отлично совместимый с редактором кода и довольно-таки интуитивно понятный. Он предназначен для FAST API интерфейсов командной строки.Библиотека автоматически генерирует usage сообщение и страницу помощи (--help). Если вам стало интересно, можете посетить документацию.
#миниурок #typer