Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Генераторы для экономии памяти

Отрабатывают эффективнее вместо самописных итераторов и вызываются с помощью специального синтаксиса — круглых скобок и конструкции i for i in range(10000).

#theory // Just Python
Сделать список плоским

Ох уж эти списки, состоящие из списков. Как бы их сделать попроще, выстроить в один ряд? Для этого тоже есть решение.
В третьей строке код проверяет, не является ли элемент списком. Если да, то использует метод extend() для расширения этим элементом итогового списка, если нет — то присоединяет его как одиночный элемент методом append().
Также в этой строке функция вызывает сама себя и, в случае списков, состоящих из списков, «проваливается» в них до тех пор, пока не доберётся до элементов, не являющихся списками. Это называется рекурсией.

#theory // Just Python
Четыре метода list в Python

1. append() - добавляет элемент в конец списка.

2. clear() - удаляет все элементы из списка

3. copy() - делает поверхностную копию списка.

4. count() - считает, сколько раз в списке встречается переданный аргумент.

#theory // Just Python
Перечисления

Python3 поддерживает простой механизм работы с перечислениями. Спасибо классу Enum.
Перечисления удобно использовать для хранения списков констант. Иначе константы беспорядочно расположены в коде.
Из документации по Python 3 можно узнать о том, что перечисление — это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность. Перечисления можно перебирать (итерировать).
Элементы перечисления хэшируемые. То есть программист может использовать их в словарях и множествах. Вспомним, что хэш позволяет создавать высокопроизводительные структуры. Используйте хэш-функции для сокращения объема данных.

#theory // Just Python
Библиотека pydantic

Программисту всегда приходится задумываться над типами данных, которые он принимает. Но это рутина, занимающая кучу времени. К счастью, проверять тип на валидность можно намного удобнее с библиотекой pydantic.
С ее помощью можно не писать однотипный код и оставить все нюансы на библиотеку. И еще небольшой плюс: ее удобно отлаживать и получать значения.

#modules // Just Python
Перезагрузка оператора

Python поддерживает перезагрузку оператора. Зная эти слова, вы сразу кажитесь настоящим компьютерным гением.
На самом деле, концепция довольно проста. Вы когда-нибудь задавались вопросом, почему в Python можно использовать оператор + для добавления чисел и конкатенации строк? Это и есть перезагрузка оператора в чистом виде.
Вы можете определить объекты, которые будут пользоваться стандартными символами операторов Python по-своему. Тогда их можно будет использовать в зависимости от содержимого объектов, с которыми вы работаете.

#theory // Just Python
Изменение типа данных элементов множества

При помощи set comprehension мы также можем изменять типы данных элементов нашего множества.

#theory // Just Python
Методы модуля random

random.random - генерируем число с плавающей точкей от 0.0 до 1.0
random.randint - гененерируем целое число в заданном диапазоне.
random.randrange - генерируем целое числов в диапазоне, при этом можем задавать шаг генерации.
random.uniform - генерируем случайное число с плавающей точкой в диапазоне.

#theory // Just Python
Чтение TOML-конфигов

Этот формат стал популярен относительно недавно и даже претендует на замену JSON ввиду повышенной “человекочитаемости”.

Наконец, разработчики ЯП зарелизили встроенную библиотеку для чтения таких файлов.

#theory // Just Python
%lsmagic

Чтобы не тратить драгоценный умственный ресурс, запомните всего одну директиву – вывести список всех команд. Запустив %lsmagic,  получаем вот такой интересный список.

Magic Commands – это часть IPython, интерактивной оболочки с дополнительными командами, подсветкой кода и автодополнением. Команды выполняют разнообразные вспомогательные операции. Те, что начинаются с одного символа “%”, применяются к одной строке, другие — ко всей ячейке. Давайте разберем самые полезные “колабисту” мэджики.

#theory // Just Python
%%time

Измеряет время выполнения ячейки. Это незаменимая утилита при оценке качества рефакторинга. Допустим, вы узнали, что цикл for замедляет код и переписали некоторый участок на перечисление (enumeration). Используя %%time, вы сможете с легкостью оценить прирост в общей скорости исполнения кода.

#theory // Just Python
Группы исключений

Теперь можно объединять ошибки некоторых видов в группу и обрабатывать их одинаково.

Интересно, насколько ускорится процесс разработки, если вываливать на питониста сразу все причины падения? В выводе ниже одновременно и ошибка типа, и ошибка некорректного значения.

#theory // Just Python
Обогащение деталей ошибки

Теперь разработчик вправе дополнить ошибку кастомной заметкой.

Фича становится восхитительно полезной, когда типов ошибок много.

#theory // Just Python
map - встроенная поддержка функционального программирования

В Python есть отличная особенность. Один из самых важных функций является функция map(), именно в сочетании с лямбда-функциями

Здесь map() применяет легкую лямбда-функцию на всех элементах x и возвращает объект map, который можно преобразовать в какой-нибудь итерируемый объект таких же как списки или кортежи

#theory // Just Python
__enter__ и_enter__ и
Эти методы используются для создания контекстных менеджеров (то есть объектов, которые можно использовать в блоке with), и позволяют управлять ресурсами, которые нужно освободить после использования.

При входе и выходе из блока with будут выведены соответствующие сообщения.

#theory // Just Python
Погрузитесь в мир Python с нашим бесплатным курсом!

🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.

Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.

📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.

Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!
Прокачанный трейсинг ошибок

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

Теперь для указания на конкретный объект, вызвавший ошибку, используется строка с несколькими ^ (символ называется “циркумфлекс”). В сниппете выше мы просим поделить на ноль, и конечно, это вызывает ошибку.

#theory // Just Python
Улучшенный синтаксис параллельных процессов

Раньше мы вручную отслеживали все свои задачи в списке, прежде чем передать их в collect().

Теперь используем контекстный менеджер.

#theory // Just Python
Перезагрузка оператора

Python поддерживает перезагрузку оператора. Зная эти слова, вы сразу кажитесь настоящим компьютерным гением.
На самом деле, концепция довольно проста. Вы когда-нибудь задавались вопросом, почему в Python можно использовать оператор + для добавления чисел и конкатенации строк? Это и есть перезагрузка оператора в чистом виде.
Вы можете определить объекты, которые будут пользоваться стандартными символами операторов Python по-своему. Тогда их можно будет использовать в зависимости от содержимого объектов, с которыми вы работаете.

#theory // Just Python
__call__

Этот метод позволяет создать так называемые «вызываемые» объекты, то есть их можно вызывать как функции.

#theory // Just Python