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
Гайд по магическим методам сравнения

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

1. __cmp__(self, other)
Самый базовый из методов сравнения. Он, в действительности, определяет поведение для всех операторов сравнения (>, ==, !=), но не всегда так, как вам это нужно. __cmp__ должен вернуть отрицательное число, если self < other, ноль, если self == other, и положительное число в случае self > other.
2. __eq__(self, other)
Определяет поведение оператора равенства, ==.
3. __ne__(self, other)
Определяет поведение оператора нераltа, !=.
4. __lt__(self, other)
Определяет поведение операторgtше, <.
5. __gt__(self, other)
Определяет поведение операторleше, >.
6. __le__(self, other)
Определяет поведение оператора меньше илgeо, <=.
7. __ge__(self, other)
Определяет поведение оператора больше или равно, >=.

#theory // Just Python
statistics.pstdev

Метод statistics.pstdev() вычисляет стандартное отклонение для всей совокупности. Стандартное отклонение — это мера того, насколько разбросаны числа. Большое стандартное отклонение указывает на то, что данные разбросаны, а небольшое стандартное отклонение указывает на то, что данные сгруппированы близко к среднему значению. Чтобы вычислить стандартное отклонение по выборке данных, используй метод statistics.stdev().

#theory // Just Python
Метод capitalize()

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

Заметьте, что метод capitalize() не изменяет оригинальную строку, а создает новую строку с изменениями. Если вы хотите изменить исходную строку, вы должны присвоить результат обратно этой переменной.

#theory // Just Python
PySnooper

PySnooper — это библиотека для Python, которая позволяет вам добавлять отладочные точки в ваш код для отслеживания значений переменных и выполнения дополнительных действий при выполнении программы. Это полезный инструмент для отладки, поскольку он позволяет вам легко исследовать, какие значения принимают переменные в определенный момент времени и какой код выполняется.

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

#theory // Just Python
Mypy

Mypy — это инструмент для статической типизации в Python. Он добавляет дополнительный слой проверки типов в ваш код, что помогает обнаруживать и предотвращать ошибки, связанные с типами данных, на этапе разработки, до выполнения программы.

Статическая типизация означает, что вы аннотируете типы для переменных, аргументов функций и возвращаемых значений в своем коде. Эти аннотации указывают Mypy, какие типы ожидаются для каждой переменной и выражения.

Mypy выполняет проверку типов на основе аннотаций, проверяя код на соответствие указанным типам. Если обнаруживаются несоответствия, Mypy генерирует ошибки или предупреждения, указывая на место, где ошибка произошла.

Это помогает повысить надежность и читаемость кода. Аннотации типов делают код более понятным и документируют ожидаемую структуру данных, что облегчает совместную работу в команде.

#theory // Just Python
LineaPy

LineaPy
это библиотека для работы с временными рядами и анализа временных данных.

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

В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.

#theory // Just Python
Делимся приватным архивом на 837 ГБ курсов по программированию:

1. Обучение Python с нуля

2. Обучение JavaScript с нуля

3. Обучение С++ с нуля

4. Обучение С# с нуля

5. Обучение HTML/CSS с нуля

6. Обучение Java с нуля

7. Обучение SQL/GO/PHP с нуля

Архивы скоро удалят, очень важно успеть!🔥
Композиция (ассоциация) классов

Композиция (ассоциация) классов — это способ связи объектов разных классов. Позволяет создавать сложные объекты из более простых.
Один класс содержит объект другого класса как атрибут, при этом внутренний объект является частью внешнего.

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

Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.

#theory // Just Python
NetworkX

NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.

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

#theory // Just Python
Как получить размер папки с помощью Python?

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

#theory // Just Python
string.rsplit

rsplit() разбивает строку по разделителю, начиная справа, и возвращает список строк. При необходимости ты можешь задать количество разбиения строки. По умолчанию этот параметр равен -1. Это значит, что нет ограничения на разбиение.

#theory // Just Python
Метод str.expandtabs()

Метод str.expandtabs() используется для замены символов табуляции ('\t') в строке на пробелы в соответствии с заданным размером шага табуляции. Метод принимает один аргумент — tabsize, который указывает количество пробелов, на которое следует заменять каждый символ табуляции.

#theory // Just Python
issubset

Метод issubset() возвращает True, если множество A является подмножеством B, т. е. если все элементы множества A присутствуют в сете B. В противном случае он возвращает False.

#theory // Just Python
Определяем ip адрес своего компьютера

Этот код использует библиотеку requests для отправки HTTP-запроса к веб-сервису ipify, который предоставляет API для определения публичного IP-адреса пользователя. Код написан в форме функции get_public_ip, что делает его удобным для повторного использования.

Использование блока try-except обеспечивает обработку исключений, которые могут возникнуть при запросе (например, проблемы с подключением к интернету). Если запрос успешен, функция возвращает IP-адрес, иначе возвращает сообщение об ошибке.

#theory // Just Python
Метод intersection()

Метод intersection() возвращает новое множество с элементами, общими для всех множеств. Если аргумент не передается в intersection(), он возвращает поверхностную копию множества (A).

#theory // Just Python
pow()

В Python функция pow() используется для вычисления степени числа. Вот как она работает:

result = pow(x, y, z)

где: x — основание степени,
y — показатель степени,
z (необязательный параметр) — модуль, по которому производится вычисление.
Если z указан, то pow(x, y, z) возвращает (x y) % z. Если z не указан, то возвращается x y.

#theory // Just Python
memoryview()

memoryview() в Python предоставляет объект для доступа к внутреннему представлению данных в виде буфера без копирования. Этот объект позволяет вам просматривать байты объекта, не копируя их, а также выполнять различные операции на уровне байтов.

memoryview() также может использоваться для работы с массивами и другими объектами, поддерживающими буферный интерфейс в Python.

Этот инструмент особенно полезен, когда вам нужно работать с большим объемом данных, и вы хотите избежать копирования данных, что может быть затратным с точки зрения времени

#theory // Just Python
Метод getitem

Метод __getitem__ является частью протокола индексации, который позволяет объекту быть индексируемым, как это делается, например, для списков или словарей. Этот метод вызывается при использовании квадратных скобок [] для доступа к элементам объекта.

Этот метод также используется при работе с срезами. Если вы хотите, чтобы ваш объект поддерживал срезы, вы также можете реализовать метод __getitem__ с тремя аргументами: self, start, stop.

#theory // Just Python
frozenset

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

Вот несколько ключевых особенностей frozenset:

Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в frozenset после его создания.
Хешируемость: Поскольку frozenset неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.

Обратите внимание, что, поскольку frozenset не поддерживает изменения, некоторые методы, которые изменяют множество (например, add, remove, discard), не применимы к frozenset. Однако, вы можете выполнять операции, возвращающие новые frozenset, такие как объединение и пересечение.

#theory // Just Python
Ruff

Ruff — это новый, быстроразвивающийся линтер Python кода, призванный заменить flake8 и isort.

Основным преимуществом Ruff является его скорость. Ruff в 10-100 раз быстрее аналогов (Линтер написан на Rust). В сравнении с flake8, автор заявляет о практически полном совпадении с набором правил инструмента и нативной реализацией популярных плагинов (flake8-bugbear и т.д.). Также Ruff совместим с Black «из коробки».

Ruff может форматировать код. Например, он автоматически удаляет неиспользуемые импорты. Что касается сортировки и группировки строк импорта, то она практически идентична isort.

#theory // Just Python
Функция next()

Функция next() возвращает следующий элемент итератора. Если итератор исчерпан, он возвращает значение по умолчанию, переданное в качестве аргумента. Если параметр по умолчанию не указан и итератор исчерпан, возникает исключение StopIteration.

#theory // Just Python