Простой Python | Программирование
141K subscribers
2.36K photos
48 videos
1.36K links
Заявки принимаются автоматически.
Лучший образовательный канал по Python.

По всем вопросам: @dimaa_dimaa (реклама)

Ссылка на канал: https://t.me/+T1i5nO0m_h01ZDky
.
РКН: https://vk.cc/cJ5box
Помощь:https://telega.in/c/+T1i5nO0m_h01ZDky
Download Telegram
Преобразование даты

Метод datetime.strptime() используется для преобразования строки в объекты даты и времени, чтобы выполнять над ними нестроковые операции. Данный метод поддерживает множество кодов форматирования, таких как %Y для четырехзначного года и %m для двухзначного месяца. Эти плейсхолдеры также работают в обратном порядке, если тебе нужно представить объект даты и времени в строковом выводе и сделать его красивым.

#практика
isdisjoint

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

#практика
symmetric difference update

Метод symmetric difference() возвращает новый набор, содержащий симметричную разность двух наборов. Метод symmetric difference update() обновляет набор с симметричной разницей наборов. Этот метод возвращает None, что указывает на отсутствие возвращаемого значения. Он только обновляет набор.

#практика
👍1
format map

Метод format map() заменяет все ключи в строке значением. Это вернет новую строку со всеми сделанными заменами, если это возможно. У данного метода есть некоторые отличия от format. Метод format() косвенно выполняет замену. Сначала создает словарь отображения, а затем выполняет замену. В случае format map() замена выполняется напрямую с использованием словаря сопоставления. Так как format map() не создает новый словарь, это немного быстрее, чем format().

#практика
Генератор QR-кода

Библиотека qrcode позволяет сделать QR-код в Python. Для большего контроля используй класс QRCode. Параметр version представляет собой целое число от 1 до 40, которое управляет размером QR-кода (наименьшая версия 1 представляет собой матрицу 21x21). Установи значение None и используй параметр fit при создании кода для автоматического определения. fill color и back color могут изменить фон и цвет QR-кода. Параметр error correction управляет исправлением ошибок, используемым для QR-кода. Параметр box size определяет количество пикселей в каждой «коробке» QR-кода. Параметр border определяет толщину границы.

#практика
Collections.counter

Collections.counter – это метод отображения, который содержит целое число для каждого ключа. Обновление существующего ключа увеличивает его количество. Это можно использовать для подсчета экземпляров хешируемых объектов (ключей). Также можно использовать как мультимножество — набор, содержащий несколько экземпляров каждого элемента. В данном примере демонстрируется работа most common([n]), который возвращает упорядоченный список кортежей с n наиболее распространенными элементами и их количеством.

#практика
MappingProxyType

Модуль types предоставляет класс-оболочку с именем MappingProxyType. Он возвращает экземпляр прокси-сервера сопоставления. Данный экземпляр является динамическим представлением исходного сопоставления, только для чтения. Это означает, что обновления исходного сопоставления можно увидеть в прокси-сервере сопоставления, но через него нельзя внести изменения.

#практика
👍1
UnicodeEncodeError

Большинство кодеков, отличных от UTF, обрабатывают лишь небольшое подмножество символов Unicode. Если символ не определен в целевой кодировке, будет вызвана ошибка UnicodeEncodeError. Ее можно обойти, предоставив специальную обработку символов. Это можно сделать путем передачи аргумента ошибки в метод или функцию кодирования. В данном примере ‘cp437’ не может кодировать «ã». error='ignore' пропускает символы, которые не могут быть закодированы. error='replace' заменяет некодируемые символы на '?'. 'xmlcharrefreplace' заменяет некодируемые символы объектом XML.

#практика
UnicodeDecodeError

Не каждый байт содержит допустимый символ ASCII, и не каждая последовательность байтов является допустимой UTF-8 или UTF-16. При преобразовании двоичной последовательности в текст ты получишь UnicodeDecodeError, если будут обнаружены непредвиденные байты.

#практика
Operator.itemgetter

Operator.itemgetter() извлекает элемент с помощью метода операнда getitem(). Если возвращается несколько значений, функция возвращает их в виде кортежа. Эта функция работает со словарями, строками, списками и кортежами. В данном примере мы сортируем список словарей.

#практика
Прогресс бар

В Python доступно несколько модулей прогресс бара. Рекомендую использовать alive-progress, так как он имеет множество преимуществ. Этот модуль многофункционален, прост в использовании и имеет множество встроенных стилей. Более того, ты можешь легко создавать свои собственные эффекты. Предварительно установи с помощью pip install alive-progress.

#практика
Operator.attrgetter

Когда у тебя есть группа объектов, ты можешь сортировать их не по местоположению в памяти, а по интересующему атрибуту. Для этого используй operator.attrgetter. Это немного быстрее, чем использование lambda. К тому же ты можешь извлекать сразу несколько полей данных. В данном примере мы сортируем фильмы по дате выхода.

#практика
Itertools.groupby

Метод groupby() в itertools проходит через итерацию и группирует значения на основе определенного ключа. Затем он возвращает итератор (поток кортежей). Важным предварительным шагом является сортировка данных по интересующей области. Так как groupby() проверяет только последовательные элементы, отсутствие первоначальной сортировки не приведет к группировке записей так, как ты хочешь.

#практика
fnmatch

Метод fnmatch() проверяет, соответствует ли имя файла шаблонной строке. Обрати внимание, что этот метод нечувствителен к регистру. Обычно fnmatch() делает сравнения, используя те же правила учета регистра, что и операционная система. Метод fnmatchcase() делает то же самое, только он чувствителен к регистру.

#практика
textwrap

Модуль textwrap позволяет переформатировать текст для вывода. Это полезно, когда у тебя есть длинные строки. Ты можешь их переформатировать таким образом, чтобы строки не имели более определенного количества символов. В данном примере мы ставим ограничение в 50 символов.

#практика
classmethod и staticmethod

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

#практика
itertools.compress

compress выборочно выбирает значения для вывода из переданного контейнера. Делает он это в соответствии со значением логического списка. Ключевым моментом здесь является создание последовательности логических значений. Эта последовательность указывает, какие элементы удовлетворяют желаемому условию. Затем функция compress() выбирает элементы, соответствующие значениям True.

#практика
Конвертация валюты

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

#практика
html.escape

При хранении HTML в базах данных или переменных тебе нужно экранировать специальные символы, которые не являются текстом разметки, но могут быть перепутаны как таковые. К таким символам относятся <, >, ", ' и &. Если не использовать экранирование, браузер неправильно отобразит веб-страницу. Чтобы избежать этих символов, ты можем использовать метод html.escape(). Он кодирует HTML в строку ascii.

#практика
time.asctime

Метод time.asctime() используется для преобразования кортежа или объекта time.structtime в строку следующего вида: День недели Месяц Число Час:Минута:Секунда Год. Поле числа состоит из двух символов и дополняется пробелом, если число представляет собой одну цифру. Если параметр не указан, используется текущее время.

#практика
👍1