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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
📌 Шпаргалка по Jupyter Notebook
🔗 Python tricks
Глубокое копирование (deep copy)

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

Когда мы вызываем глубокое копирование, происходит следующее:
- Создается новый контейнерный объект (список, словарь и т. д.);
- Для каждого элемента исходного объекта рекурсивно вызывается глубокое копирование:
- Если элемент является изменяемым объектом (списком, словарем), то создается его копия с рекурсивным копированием вложенных элементов;
- Если элемент неизменяемый (число, строка) - он просто копируется как есть;
- Копии вложенных объектов вставляются в копию исходного объекта.

🔗 Python tricks
string.split

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

🔗 Python tricks
Виртуальные окружения

Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?

К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
🔗 Python tricks
Блок for…else

Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.

В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
🔗 Python tricks
Как рассчитать дату в будущем в Python

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

Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
🔗 Python tricks
Оператор in

При
использовании оператора in мы проверяем, содержится ли элемент в списке.

В этом примере мы проверяем, содержится ли в списке фруктов элемент 'apple' и 'grape'.
🔗 Python tricks
Что такое файлы .pth

Файлы с расширением .pth — это файлы, которые могут быть использованы для добавления директорий в путь поиска модулей Python. Директивы .pth выполняются при запуске интерпретатора Python и добавляют определенные каталоги в переменную sys.path.

Это удобно, когда нужно импортировать модули из нестандартных директорий без необходимости переноса файлов в директории по умолчанию.
🔗 Python tricks
Метода index()

При использовании метода index() мы находим индекс первого вхождения элемента в список.

В этом примере мы используем метод index() для нахождения индекса первого вхождения числа 2 в списке numbers.
🔗 Python tricks
Планирование и автозапуск Python скриптов по времени

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

Перейти к просмотру

🔗 Python tricks
Замер времени выполнения куска кода с помощью модуля «timeit».

Модуль timeit позволяет замерить время выполнения любого куска кода.

Большие куски кода не очень удобно, но вот мелкие довольно хорошо. Закидываете вашу строчку внутрь timeit и вуаля.
🔗 Python tricks
Функция enumerate()

При использование enumerate() мы получаем индекс и значение списка элементов в одном цикле.

Мы выводим индекс и значение каждого элемента списка фруктов.
🔗 Python tricks
Функция sorted()

При использование функции sorted() мы сортируем список элементов в порядке возрастания или исчезновения.

В этом понимании мы сортируем список чисел по возрастанию и выводим результат на экран.
🔗 Python tricks
Инициализатор init и финализатор del

Благодаря данному видео ты научишься добавлять в классы магические методы init для начальной инициализации создаваемых объектов и финализатор del для выполнения действий перед непосредственным удалением объекта из памяти.

👀Смотреть видео

🔗 Python tricks
Дано целое число, преобразовать его в римскую цифру.

В этом решении мы создаем метод intToRoman, который принимает целое число в качестве аргумента и возвращает его римское представление в виде строки.

Метод использует жадный алгоритм для поиска наибольшего римского числа, которое может быть вычтено из входного числа. Затем он вычитает это число и добавляет соответствующее римское число к результату.
Этот процесс повторяется до тех пор, пока входное число не станет равным нулю.
🔗 Python tricks
Решение проблемы «падения» процессов в приложении, работающего 24/7 в режиме мультипроцессинга

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

🔗 Python tricks
Метода split()

При использовании метода split() мы разбиваем строку на список элементов, используя заданный разделитель.

В этом примере мы используем метод split() для разбиения строки sentence на список слов.
🔗 Python tricks
Plumbum

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

Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum сам сформирует командную строку.
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
🔗 Python tricks
📌 Ещё одна шпаргалка
🔗 Python tricks