Forwarded from Python Community
⚡️ Красивый вывод данных
Если вам приходится работать с выводом списков или словарей, то вы можете упростить себе работу, использовав pprint.
indent определяет количество отступов перед объектами, а width — ширину вывода. depth — сколько объектов необходимо рекурсивно раскрывать, а stream — куда записывать все данные (по умолчанию sys.stdout).
#миниурок #pprint
Если вам приходится работать с выводом списков или словарей, то вы можете упростить себе работу, использовав 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 преобразовывает список в строку, рассматривая каждый элемент как строку.
Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.
Метод join преобразовывает список в строку, рассматривая каждый элемент как строку.
Forwarded from Python School
Queue (ч.1)
Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.
Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.
Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.
Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.
Forwarded from Python School
Queue (ч.2)
Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.
Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.
Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.
Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.
Forwarded from Python School
Подсчет вхождений в список
Используйте Counter из библиотеки коллекций, чтобы получить словарь с подсчетом всех уникальных элементов в списке
Используйте Counter из библиотеки коллекций, чтобы получить словарь с подсчетом всех уникальных элементов в списке
Forwarded from Python Community
⚡️ Файлы конфигурации
Вряд ли клиент захочет лезть в код, чтобы поменять порт сервера, поэтому многие программисты создают файлы конфигурации. Работать с ними можно с помощью модуля configparser.
Брать информацию можно используя квадратные скобки или, лучше, методом
Если вы изменили какие-то данные и хотите их сохранить, впишите метод
#миниурок #configparser
Вряд ли клиент захочет лезть в код, чтобы поменять порт сервера, поэтому многие программисты создают файлы конфигурации. Работать с ними можно с помощью модуля 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 по выходным
Ссылка на трансляцию онлайн-события
Добрый день!
Напоминаем вам, что *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
позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.Помимо этого,
validators
позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.#validators
Forwarded from Python Academy
Аннотация типов
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой
В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур
И наконец в 3.10 на замену перечисления возможных принимаемых типов через
#typing #typealias
Тайп хинтинг был добавлен в 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 архивами
Для работы с
Просмотреть содержимое архива можно с помощью функции
Также этот модуль позволяет создавать свои
#zipfile
Для работы с
zip
файлами можно использовать встроенный модуль zipfile
. Если кто не помнит, то zip
файл — это архив, содержащий сжатые файлы. Просмотреть содержимое архива можно с помощью функции
printdir
, а извлечь все файлы можно вызвав extractfile
. Также этот модуль позволяет создавать свои
zip
архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. #zipfile
Forwarded from Python Academy
Проверка отношения классов
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
isinstance(object, classinfo)
и issubclass(class, classinfo)
.instance
- возвращает True, если объект является экземпляром класса либо экземпляром подкласса данного класса.issubclass
— проверяет является ли класс наследником другого класса.Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Forwarded from Python Academy
Делаем планировщик задач
К моему удивлению, далеко не все знают про пакет
Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще
Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
#schedule
К моему удивлению, далеко не все знают про пакет
schedule
, который позволяет планировать задачи и повторять их через промежуток времени. Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще
schedule
не требует внешних зависимостей и сам в целом легковесный. Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
#schedule
Forwarded from Python Academy
Отсутствующие ключи в словаре
При обращении по отсутствующему ключу в словаре мы получим исключение
Для этого создадим свой собственный класс словаря, унаследовавшись от
Мы можем, например, возвращать какое-то дефолтное значение, либо определить любую другую необходимую логику поведения.
#dict
При обращении по отсутствующему ключу в словаре мы получим исключение
KeyError
. Но мы можем переопределить это поведение.Для этого создадим свой собственный класс словаря, унаследовавшись от
dict
. После чего нам просто необходимо переопределить метод __missing__
, который вызывается в базовой реализации методом dict.__getitem__
при при адресации к отсутствующему ключу. Мы можем, например, возвращать какое-то дефолтное значение, либо определить любую другую необходимую логику поведения.
#dict
Forwarded from Python Academy
Работаем с файловыми путями
В стандартной библиотеке есть максимально удобный пакет
Для представления пути к файлу есть класс
Но самой классной фичей является замена
Итого, пакет
#pathlib
В стандартной библиотеке есть максимально удобный пакет
pathlib
для простой работы с файловыми путями. Для представления пути к файлу есть класс
Path
, с объектами которого уже можно производить операции. Например, методы exists()
и is_dir()
проверяют, существует ли файл и является ли он директорией. Но самой классной фичей является замена
os.path.join()
на более удобный и элегантный вариант с использованием слэшей, как показано на картинке. Итого, пакет
pathlib
может стать частичной заменой os
в некоторых случаях при работе с файловыми путями. #pathlib
Forwarded from Python Academy
Флаги явного преобразования
Флаг явного преобразования (Explicit Conversion Flag) используется для преобразования значения поля format перед его непосредственным форматированием.
Это поле можно использовать для переопределения поведения
В примере, в случае с флагом
#строки
Флаг явного преобразования (Explicit Conversion Flag) используется для преобразования значения поля format перед его непосредственным форматированием.
Это поле можно использовать для переопределения поведения
format
для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования: !r
— преобразует значение в строку, используя функцию repr()
.!s
— преобразует значение в строку, используя функцию str()
.В примере, в случае с флагом
!r
строка 'Hello'
будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s
— без кавычек (в более удобном для чтения виде). #строки
Forwarded from Python Academy
Выводим вложенные словари и списки
При выводе вложенных словарей и списков с помощью обычного
Но в стандартной библиотеке есть модуль
Из интересных аргументов есть
#pprint
При выводе вложенных словарей и списков с помощью обычного
print()
мы получаем всё в одну строчку и в неразборчивом виде. Но в стандартной библиотеке есть модуль
pprint
, который поможет вывести подобное дело в красивом формате — достаточно в коде заменить print()
на pprint.pprint()
.Из интересных аргументов есть
depth
, отвечающий за глубину вложенности при выводе, а также width
, который отвечает за ширину вывода в консоли.#pprint
Forwarded from Python Community
⚡️ Встроенные функции в Python
Если вы хоть раз писали hello world, значит ими точно пользовались. Но print — не единственная встроенная функция. Их, приблизительно, 71 штука.
Вряд ли получится уместить все функции в одну статью, да и необходимости в этом нет, если всё можно найти в документации.
#теория
Если вы хоть раз писали hello world, значит ими точно пользовались. Но print — не единственная встроенная функция. Их, приблизительно, 71 штука.
float()
, int()
, list()
, set()
, str()
, tuple()
, dict()
— основные типы в Python: список, строка, кортеж, словарь.max()
, min()
, abs()
— возвращают максимальное, минимальное число из списка. А последняя функция — абсолютное число.zip()
, enumerate()
, reversed()
— три отличных помощника при работе с циклами.Вряд ли получится уместить все функции в одну статью, да и необходимости в этом нет, если всё можно найти в документации.
#теория