#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Python Community
⚡️ Красивый вывод данных

Если вам приходится работать с выводом списков или словарей, то вы можете упростить себе работу, использовав pprint.

PrettyPrinter(indent=1, width=80, depth=None, stream=None) — Класс, отвечающий за перевод данных в красивый формат.

indent определяет количество отступов перед объектами, а width — ширину вывода. depth — сколько объектов необходимо рекурсивно раскрывать, а stream — куда записывать все данные (по умолчанию sys.stdout).

pprint.pprint(object, ...) — функция, упрощающая работу с классом. Принимает object, который необходимо вывести и те же параметры, что и PrettyPrinter.

#миниурок #pprint
Forwarded from Python School
Красивый вывод списка (ч.1)

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

Метод join преобразовывает список в строку, рассматривая каждый элемент как строку.
Forwarded from Python School
Queue (ч.1)

Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.

Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.
Forwarded from Python School
Queue (ч.2)

Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.

Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.
Forwarded from Python School
Подсчет вхождений в список

Используйте Counter из библиотеки коллекций, чтобы получить словарь с подсчетом всех уникальных элементов в списке
Forwarded from Python Community
⚡️ Файлы конфигурации

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

ConfigParser() — основной класс для работы с конфигами. Его можно оставить так, а можно загрузить данные, используя метод read(filename), который принимает имя файла.

Брать информацию можно используя квадратные скобки или, лучше, методом get(key, default=None).

Если вы изменили какие-то данные и хотите их сохранить, впишите метод write(file), который принимает IO файл.

#миниурок #configparser
Forwarded from Gmail Bot
✉️ Timepad <no-reply@timepad.ru>
Ссылка на трансляцию онлайн-события

Добрый день!
Напоминаем вам, что *8 июля 2021* c *18:00* до *21:00* (московское время) пройдет онлайн-событие *«Python Community Online Meetup»* , на которое вы зарегистрировались.
Вот ваша персональная ссылка на трансляцию: https://raiffeisen-events.timepad.ru/event/webinar_redirect/46853564/3febc73dab0511f65201218e3ef6cf6e95286e87/
Можно переходить уже сейчас и ждать начала.
Timepad
Организуете события? Привлекайте участников и продавайте билеты на timepad.ru. Присоединяйтесь к нам на Facebook и ВКонтакте Служба поддержки:
support@timepad.ru
+7 (495) 212–16–98 (Москва)
8 (800) 300–69–84 (по России)
Время работы (московское):
с 9:00 до 20:00 по будням
с 10:00 до 18:00 по выходным
Forwarded from iggisv9t channel
Вот так вот в исходниках CDlib. Просто по порядку пытается импортировать все пакеты. Пакет с пакетами, получается.
Forwarded from Python Academy
Валидаторы данных

Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.

Модуль validators позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.

Помимо этого, validators позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.

#validators
Forwarded from Python Academy
Аннотация типов

Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой typing, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.

В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур typing'а (List, Dict, Tuple...).

И наконец в 3.10 на замену перечисления возможных принимаемых типов через typing.Union пришел опреатор | (or). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias.

#typing #typealias
Forwarded from Python Academy
Операции с zip архивами 

Для работы с zip файлами можно использовать встроенный модуль zipfile. Если кто не помнит, то zip файл — это архив, содержащий сжатые файлы. 

Просмотреть содержимое архива можно с помощью функции printdir, а извлечь все файлы можно вызвав extractfile

Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. 

#zipfile
Forwarded from Python Academy
Проверка отношения классов

Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции isinstance(object, classinfo) и issubclass(class, classinfo).

instance - возвращает True, если объект является экземпляром класса либо экземпляром подкласса данного класса.
issubclass — проверяет является ли класс наследником другого класса.

Данные функции зачастую применяются в ООП.

#isinstance #issubclass
Forwarded from Python Academy
Делаем планировщик задач 

К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени. 

Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный. 

Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах. 

#schedule
Forwarded from Python Academy
Отсутствующие ключи в словаре

При обращении по отсутствующему ключу в словаре мы получим исключение KeyError. Но мы можем переопределить это поведение.

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

Мы можем, например, возвращать какое-то дефолтное значение, либо определить любую другую необходимую логику поведения.

#dict
Forwarded from Python Academy
Работаем с файловыми путями

В стандартной библиотеке есть максимально удобный пакет pathlib для простой работы с файловыми путями.

Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.

Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.

Итого, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.

#pathlib
Forwarded from Python Academy
Флаги явного преобразования 
 
Флаг явного преобразования (Explicit Conversion Flag) используется для преобразования значения поля format перед его непосредственным форматированием. 

Это поле можно использовать для переопределения поведения format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования: 

!r — преобразует значение в строку, используя функцию repr().
!s — преобразует значение в строку, используя функцию str().

В примере, в случае с флагом !r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s — без кавычек (в более удобном для чтения виде).  

#строки
Forwarded from Python Academy
Выводим вложенные словари и списки

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

Но в стандартной библиотеке есть модуль pprint, который поможет вывести подобное дело в красивом формате — достаточно в коде заменить print() на pprint.pprint().

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

#pprint
Forwarded from Python Community
⚡️ Ответ на предыдущую задачу
Forwarded from Python Community
⚡️ Встроенные функции в Python

Если вы хоть раз писали hello world, значит ими точно пользовались. Но print — не единственная встроенная функция. Их, приблизительно, 71 штука.

float(), int(), list(), set(), str(), tuple(), dict() — основные типы в Python: список, строка, кортеж, словарь.

max(), min(), abs() — возвращают максимальное, минимальное число из списка. А последняя функция — абсолютное число.

zip(), enumerate(), reversed() — три отличных помощника при работе с циклами.

Вряд ли получится уместить все функции в одну статью, да и необходимости в этом нет, если всё можно найти в документации.

#теория