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
dict.setdefault

setdefault() возвращает: значение ключа, если он есть в словаре; ничего, если ключа нет в словаре и значение по умолчанию не указано
default value, если ключ отсутствует в словаре и указано default value.

🔗 Python tricks
Число в список цифр

Превращает целое число в список его цифр.

Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.

🔗 Python tricks
Первая буква в верхнем регистре

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

🔗 Python tricks
Печать строки N раз

Этот пример может печатать любую строку n раз без использования циклов Python.

🔗 Python tricks
Логирование в Python с помощью Logzero. Экземпляры пользовательских логгеров

Вместо использования логгера по умолчанию, можно настроить экземпляры логгера с помощью logzero.setup_logger(..). Он возвращает полностью настроенный экземпляр логгера с различными параметрами, такими как имя, имя лог-файла, форматирование, maxBytes, backupCount и уровень логирования.

🔗 Python tricks
Логирование в Python с помощью Logzero. Установка пользовательского форматирования

Лог-запись можно отформатировать на свое усмотрение. Есть несколько способов: вы можете включить дату, время и уровень логирования в свой формат, чтобы знать, когда и на каком уровне был отправлен лог.

🔗 Python tricks
Используйте многоточие в качестве заполнителя для ненаписанного кода

В Python мы обычно помещаем ключевое слово pass в качестве заполнителя для ненаписанного кода. Но мы также можем использовать многоточие для этой цели.

🔗 Python tricks
Список всех переменных

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

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

🔗 Python tricks
Преобразование разделённого запятыми списка в строку

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

🔗 Python tricks
Выполнение html-скрипта

%% html позволяет нам писать html-код в ячейке. Теперь ячейка будет действовать как html-редактор с html-выводом ячейки.

Следующий код состоит из простой таблицы, созданной в формате html. Заметьте, что html-вывод отображает ожидаемую таблицу.

🔗 Python tricks
Matplotlib: Круговые диаграммы

Ты можешь использовать функцию pie() для рисования круговых диаграмм.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y)
plt.show()


По умолчанию построение первого сектора начинается с оси X и движется против часовой стрелки. Для изменения начального угла нужно указать параметр startangle. Данный параметр определяется углом в градусах, угол по умолчанию равен 0.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels, startangle = 90)
plt.show()


Также ты можешь добавить метки на круговую диаграмму с помощью параметра labels. Параметр labels должен быть массивом с одной меткой для каждого сегмента.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

plt.pie(y, labels = mylabels)
plt.show()


🔗 Python tricks
Отображение графиков Matplotlib

%matplotlib inline
 — это самая популярная магическая команда. Она позволяет отображать в блокнотах графики Matplotlib. Эта команда активирует интерактивную поддержку Matplotlib для блокнота Jupyter.

🔗 Python tricks
Печать в одной строке

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

🔗 Python tricks
Выражения присваивания (Assignment expressions)
Python 3.8

Так же известные как «моржовый оператор» (walrus operator) — новый синтаксис, который позволит присваивать значения переменным внутри другого выражения. Это, наверное, самое известное и обсуждаемое из нововведений версии 3.8.

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

🔗 Python tricks
Подробная информация об объекте

%pinfo предоставляет подробную информацию об объекте, который передается вместе с ним. Она похожа на функцию object?.

🔗 Python tricks
Matplotlib: Круговые диаграммы

С помощью параметра explode ты можешь задать, насколько далеко от центра отображается каждый сегмент.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, labels = mylabels, explode = myexplode)
plt.show()


Для добавления теней используй параметр shadows, придав ему значение True.

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
myexplode = [0.2, 0, 0, 0]

plt.pie(y, labels = mylabels, explode = myexplode, shadow = True)
plt.show()


Для изменения цвета тебе пригодится параметр colors. Это массив с одним значением для каждого сегмента.

y = np.array([35, 25, 25, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
mycolors = ["black", "hotpink", "b", "#4CAF50"]

plt.pie(y, labels = mylabels, colors = mycolors)
plt.show()


🔗 Python tricks
Генератор

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

Генератор — это итератор, который работает в режиме обработки по необходимости. Мы не будем производить вычисления и сохранять значения сразу, а сделаем их “на лету”, когда будут выполняться итерации. 

🔗 Python tricks
Ограничение итераций

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

🔗 Python tricks
Узнаем сколько всего опредленных букв в строке

Один из способов узнать количество определенных букв в строке максимально быстрым методом – использовать метод count для строки. Этот метод принимает символ или подстроку и возвращает количество их вхождений в строку.

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

🔗 Python tricks
Итерируемые объекты

В Python итерируемый объект — это объект, над которым производятся так называемые проходы (итерации). Например, как в цикле for.
Большинство наборных структур данных являются итерируемыми объектами. Это списки, кортежи, наборы. Например, ниже мы создаём список и проходимся по его элементам по очереди.

🔗 Python tricks