Python Academy
49.5K subscribers
1.08K photos
2 videos
374 links
Python Academy — один канал вместо тысячи учебников

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

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

Канал включён в перечень РКН: https://rkn.link/TVu
加入频道
Правильным ответом является [1, 2]

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

А для того, чтобы добиться правильного поведения функции, следует воспользоваться ключевым словом None при определении аргументов по-умолчанию.
Another yet itertools tricks

Всем привет! Не так давно мы рассматривали 3 трюка с модулем itertools. Сегодня мы рассмотрим еще несколько полезных фишек этого крутого модуля.

Начнем с функции combinations. Она позволяет составлять комбинации элементов из итерируемых объектов без повторений. Первый аргумент это сам объект, а второй – длина комбинации.

Для того, чтобы составить комбинацию с повторениями, используют функцию combinations_with_replacement. Делает она абсолютно все то же самое что и предыдущая, с одним исключением – теперь в комбинации могут быть повторы.

Ну и в заключение, рассмотрим функцию compress, применяющую "маску" из второго аргумента функции к первому. То есть, если в маске на этом месте стоит единица, то в исходном массиве цифра остается нетронутой, и наоборот.

#модули #itertools
Что будет выведено на экран?

Выберите правильный ответ 👇

#question
Ответ
Anonymous Quiz
15%
1
28%
3
29%
None
28%
Ошибка
Method Resolution Order

В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.

Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object.

Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
Вечный вопрос: Django или Flask

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

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

В случае, если в приоритете трудоустройство, то следует изучать Django, так как он наиболле востребованный. Но если вы хотите создавать пет-проекты или просто изучать веб в целом, то рекомендую рассматривать Flask.

#мнение
Pandas для начинающих

На сегодняшний день, пакет Pandas – самый важный инструмент во всем, что касается анализа данных. И если вы думаете о карьере в области Data Science, то крайне важно уметь работать с этим пакетом.

В этой статье мы рассмотрим наиболее важную информацию о Pandas и научимся использовать основные его функции для работы с данными.

Читать 8 минут

#статья
А что предпочитаете вы?
Что будет выведено на экран?

Выберите правильный ответ 👇

#question
Ответ
Anonymous Quiz
38%
1
17%
2
21%
12
25%
Ошибка
Что будет выведено на экран? 

Выберите правильный ответ 👇 

#question
Что будет выведено на экран? 

Выберите правильный ответ 👇 

#question
Частичное применение

Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.

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

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

#functools
Именование среза с использованием функции slice

Работа с множеством значений, которые заданы индексами, может быстро обернуться беспорядком – как в плане поддержки, так и в плане читабельности кода.

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

#трюки
Ускоряем код с помощью векторизации

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

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

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

#vectorize #numpy
Что будет выведено на экран? 

Выберите правильный ответ 👇 

#question