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
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
Как работать с кортежами?


Почему когда мы создаем кортеж из одного элемента нам выводит строку?

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

Но все же не увлекайтесь, и ставьте скобки, тем более, что бывают случаи, когда скобки необходимы.
Еще можно создать кортеж из итерируемого объекта можно с помощью все той же пресловутой функции tuple()
🔗 Python tricks
list.pop

Метод list pop() удаляет элемент по указанному индексу. Метод также возвращает удаленный элемент. Если индекс, переданный методу, находится за пределами диапазона, он выдает исключение IndexError: pop index out of range.

🔗 Python tricks
Операции с кортежами

Все операции над списками, не изменяющие список (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами и так далее.

Например, гордость программистов на python - поменять местами значения двух переменных
🔗 Python tricks
Словари (dict) и работа с ними

Словари в Python
- неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

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

🔗 Python tricks