Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

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

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
NumPy, часть 3: random

Есть несколько способов работы с случайными элементами в NumPy.

Путь первый это создавать списки, используя встроенный модуль random, а затем преобразовывать их в numpy.array.

Второй путь это создание массивов. Самый простой способ задать массив со случайными элементами - использовать функцию sample (или random, или random_sample, или ranf - это всё одна и та же функция).
🔗 Python tricks
NumPy, часть 3: random

Есть несколько способов работы с случайными элементами в NumPy.

Путь первый это создавать списки, используя встроенный модуль random, а затем преобразовывать их в numpy.array.

Второй путь это создание массивов. Самый простой способ задать массив со случайными элементами - использовать функцию sample (или random, или random_sample, или ranf - это всё одна и та же функция).

🔗 Python tricks
NumPy, часть 4: linalg

Теперь же мы приступим к более серьёзным вещам, которые есть в NumPy. Первый на очереди у нас модуль numpy.linalg, позволяющий делать многие операции из линейной алгебры.

Массивы большей размерности в большинстве функций linalg интерпретируются как набор из нескольких массивов нужной размерности. Таким образом, можно одним вызовом функции проделывать операции над несколькими объектами.

🔗 Python tricks
None (null)

Существует много случаев, когда следует использовать None.
Часто вы хотите выполнить действие, которое может работать либо завершиться неудачно. Используя None, вы можете проверить успех действия.

Python является объектно-ориентированным, и поэтому None - тоже объект, и имеет свой тип.

🔗 Python tricks
Числа: целые, вещественные, комплексные

Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций. Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти). Над целыми числами также можно производить битовые операции.

Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам. Для высокой точности используют другие объекты (например Decimal и Fraction)). Также вещественные числа не поддерживают длинную арифметику
🔗 Python tricks
Исключения в python. Конструкция try - except для обработки исключений

Исключения (exceptions) - ещё один тип данных в python. Исключения необходимы для того, чтобы сообщать программисту об ошибках.
Самый простейший пример исключения - деление на ноль.

В блоке try мы выполняем инструкцию, которая может породить исключение, а в блоке except мы перехватываем их. При этом перехватываются как само исключение, так и его потомки. Например, перехватывая ArithmeticError, мы также перехватываем FloatingPointError, OverflowError и ZeroDivisionError.
🔗 Python tricks
Файлы. Работа с файлами

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

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

Первый - метод read, читающий весь файл целиком, если был вызван без аргументов, и n символов, если был вызван с аргументом (целым числом n). Ещё один способ сделать это - прочитать файл построчно, воспользовавшись циклом for.
🔗 Python tricks
Множества (set и frozenset)

Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке. Множества имеет тот же литерал, что и словарь, но пустое множество с помощью литерала создать нельзя.

Единственное отличие set от frozenset заключается в том, что set - изменяемый тип данных, а frozenset - нет.
🔗 Python tricks
SpaCy

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

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

🔗 Python tricks
Streamlit

Streamlit — это библиотека для создания веб-приложений с использованием Python. Она предоставляет простой способ превращения скриптов Python в интерактивные веб-приложения без необходимости изучения веб-разработки или HTML/CSS/JavaScript.

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

🔗 Python tricks
RecursionError

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

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

🔗 Python tricks
@cached_property

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

@cached_property не является стандартной частью стандартной библиотеки Python, но его можно легко добавить, например, используя библиотеку cached-property.

🔗 Python tricks
Именные функции, инструкция def

Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.

Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!)
🔗 Python tricks
Аргументы функции

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

Функция также может принимать переменное количество позиционных аргументов, тогда перед именем ставится *
🔗 Python tricks
Метод isalpha()

Метод isalpha() является строковым методом, который позволяет проверить, состоит ли каждый символ в строке из букв (алфавитных символов). Он возвращает True, если все символы в строке являются буквами, и False в противном случае.

Как видно в примере выше, первая строка состоит только из букв, поэтому isalpha() возвращает True. Вторая строка содержит символы, которые не являются буквами (запятая и восклицательный знак), поэтому isalpha() возвращает False.

🔗 Python tricks
Pystan

Pystan — это python-обёртка для Stan, которая позволяет использовать методы байесовского статистического вывода.

Основные возможности Pystan:
— Простой интерфейс для задания байесовских моделей на языке Stan.
— Автоматическая компиляция моделей в высокооптимизированный код на C++.
— Выполнение статистического вывода с использованием методов Монте-Карло (MCMC).
— Возможность задавать сложные иерархические модели.
— Удобные инструменты для анализа результатов моделирования.
— Интеграция со многими библиотеками данных и визуализации в Python.

Pystan используется везде, где нужно решать задачи статистического моделирования и анализа данных с помощью байесовских методов.
🔗 Python tricks
pyperclip

pyperclip — это библиотека Python, которая предоставляет простой способ копирования и вставки текста в буфер обмена (clipboard) операционной системы. Вы можете использовать pyperclip для копирования текста в буфер обмена и вставки текста из буфера обмена в свой Python-скрипт.

Для установки pyperclip, вы можете использовать инструмент управления пакетами Python, такой как pip. Откройте терминал или командную строку и выполните следующую команду:

pip install pyperclip

После установки библиотеки, вы можете использовать ее в своем Python-коде.

🔗 Python tricks
FastAPI

FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API используя Python 3.6+, в основе которого лежит стандартная аннотация типов Python. FastAPI обладает выдающейся производительностью благодаря использованию асинхронности и автоматическому созданию документации для вашего API.

FastAPI предоставляет множество других возможностей, такие как валидация запросов, зависимости (dependencies), работа с базами данных и многое другое, что делает его мощным инструментом для создания веб-приложений на Python.

🔗 Python tricks
Анонимные функции, инструкция lambda

Анонимные функции могут содержать лишь одно выражение, но и выполняются они быстрее. Анонимные функции создаются с помощью инструкции lambda. Кроме этого, их не обязательно присваивать переменной, как делали мы инструкцией def func().

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

🔗 Python tricks
Зачем нужны кортежи, если есть списки?

На это есть несколько причин. Во первых, это защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).

Во вторых, кортежи меньше размером чем списки. Это существенный плюс при работе с большими программами.

В третьих, это возможность использовать кортежи в качестве ключей словаря.

🔗 Python tricks