Модуль shelve
Модуль shelve реализует постоянное хранилище для произвольных объектов Python, значения которого можно извлекать, используя словарные методы, что облегчает переход от сценариев на основе словаря к тем, которые требуют постоянного хранения. В качестве ключей хранилища shelve используются обычные строки.
Под понятием произвольных объектов Python понимается - все, что может обрабатывать модуль pickle. Это включает в себя большинство экземпляров классов, рекурсивных типов данных и объектов, содержащих множество общих подобъектов.
Модуль shelve реализует постоянное хранилище для произвольных объектов Python, значения которого можно извлекать, используя словарные методы, что облегчает переход от сценариев на основе словаря к тем, которые требуют постоянного хранения. В качестве ключей хранилища shelve используются обычные строки.
Под понятием произвольных объектов Python понимается - все, что может обрабатывать модуль pickle. Это включает в себя большинство экземпляров классов, рекурсивных типов данных и объектов, содержащих множество общих подобъектов.
Удаления префиксов и суффиксов из строк
Для этого используются новые строковые методы str.removeprefix() и str.removesuffix(), они позволяют легко удалять ненужный префикс или суффикс из содержимого строки.
Для этого используются новые строковые методы str.removeprefix() и str.removesuffix(), они позволяют легко удалять ненужный префикс или суффикс из содержимого строки.
Какой метод можно использовать для удаления любых пробелов как из начала, так и из конца строки?
Anonymous Quiz
70%
strip()
6%
ptrim()
19%
trim()
5%
len()
Утиная типизация
Утиная типизация – это концепция, характерная для языков программирования с динамической типизацией, согласно которой конкретный тип или класс объекта не важен, а важны лишь свойства и методы, которыми этот объект обладает. Другими словами, при работе с объектом его тип не проверяется, вместо этого проверяются свойства и методы этого объекта. Такой подход добавляет гибкости коду, позволяет полиморфно работать с объектами, которые никак не связаны друг с другом и могут быть объектами разных классов. Единственное условие, чтобы все эти объекты поддерживали необходимый набор свойств и методов.
Утиная типизация – это концепция, характерная для языков программирования с динамической типизацией, согласно которой конкретный тип или класс объекта не важен, а важны лишь свойства и методы, которыми этот объект обладает. Другими словами, при работе с объектом его тип не проверяется, вместо этого проверяются свойства и методы этого объекта. Такой подход добавляет гибкости коду, позволяет полиморфно работать с объектами, которые никак не связаны друг с другом и могут быть объектами разных классов. Единственное условие, чтобы все эти объекты поддерживали необходимый набор свойств и методов.
Добро пожаловать в мир продвинутого Python программирования: @pro_python_code
В канале вы найдете :
📃Статьи ,
📚Книги
👨💻 Код
🔗Ссылки
🦾 Вакансии
🚀 А для всех, кто хочет изучить Гавный ит тренд - машинное обучение рекомеднуем канал: @machinelearning_ru
#Python #Django
#MachineLearning #DataScience
1 канал вместо тысячи учебников и курсов, подписывайтесь: 👇👇👇
🐍 @pro_python_code
В канале вы найдете :
📃Статьи ,
📚Книги
👨💻 Код
🔗Ссылки
🦾 Вакансии
🚀 А для всех, кто хочет изучить Гавный ит тренд - машинное обучение рекомеднуем канал: @machinelearning_ru
#Python #Django
#MachineLearning #DataScience
1 канал вместо тысячи учебников и курсов, подписывайтесь: 👇👇👇
🐍 @pro_python_code
Какой метод можно использовать для возврата строки в верхнем регистре букв?
Anonymous Quiz
12%
upperCase()
69%
upper()
5%
toUpperCase()
13%
uppercase()
Создание изображений
Чтобы создать новое изображение с помощью библиотеки Python Pillow PIL, используйте метод image_new().
В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Чтобы создать новое изображение с помощью библиотеки Python Pillow PIL, используйте метод image_new().
В этом примере мы создадим новое изображение в режиме RGB с размером (400, 300). Мы не будем указывать цвет, поэтому методы new() считают значение цвета по умолчанию 0 – для каналов RGB будет черным цветом.
Какой метод можно использовать для замены частей строки?
Anonymous Quiz
9%
replaceString()
5%
switch()
5%
repl()
81%
replace()
Номинальная типизация
При номинальной типизации (nominal type system) совместимость типов определяется, основываясь на явных декларациях в коде программы, например, на именах классов и иерархии наследования.
Если класс Duck явно объявлен наследником класса Bird, то объекты класса Duck могут быть использованы везде, где ожидаются объекты класса Bird. Применительно к Python, mypy может статически, без непосредственного запуска программы, основываясь только на исходном коде, проверить такую совместимость.
При номинальной типизации (nominal type system) совместимость типов определяется, основываясь на явных декларациях в коде программы, например, на именах классов и иерархии наследования.
Если класс Duck явно объявлен наследником класса Bird, то объекты класса Duck могут быть использованы везде, где ожидаются объекты класса Bird. Применительно к Python, mypy может статически, без непосредственного запуска программы, основываясь только на исходном коде, проверить такую совместимость.
Структурная типизация
Структурная типизация (structural type system) определяет совместимость типов на основе структуры этих типов, а не на явных декларациях. Подобный механизм может рассматриваться как некоторый аналог утиной типизации, но для статических проверок, в некотором смысле compile time duck typing.
Структурная типизация также довольно широко распространена. Например, интерфейсы в Go – это набор методов, которые определяют некоторую функциональность. Типы, реализующие интерфейсы в Go не обязаны декларировать каким-либо образом, что они реализуют данный интерфейс, достаточно просто реализовать соответствующие методы интерфейса.
На примере класс Employee является подтипом Person, хотя в коде нет никаких явных деклараций наследования. Важно лишь то, что Employee имеет необходимые свойства name и age. Класс Figure, напротив, не имеет указанных свойств и, следовательно, не может быть использован там, где ожидается Person.
Структурная типизация (structural type system) определяет совместимость типов на основе структуры этих типов, а не на явных декларациях. Подобный механизм может рассматриваться как некоторый аналог утиной типизации, но для статических проверок, в некотором смысле compile time duck typing.
Структурная типизация также довольно широко распространена. Например, интерфейсы в Go – это набор методов, которые определяют некоторую функциональность. Типы, реализующие интерфейсы в Go не обязаны декларировать каким-либо образом, что они реализуют данный интерфейс, достаточно просто реализовать соответствующие методы интерфейса.
На примере класс Employee является подтипом Person, хотя в коде нет никаких явных деклараций наследования. Важно лишь то, что Employee имеет необходимые свойства name и age. Класс Figure, напротив, не имеет указанных свойств и, следовательно, не может быть использован там, где ожидается Person.
Что выведет код сверху?
Anonymous Quiz
48%
[1, 2, 3, 'abc']
7%
[1, 2, 3]
8%
Error
36%
[1, 2, 3, 'a', 'b', 'c']
Метод intersection()
Метод intersection() возвращает новый набор с элементами, общими для всех наборов. Пересечение двух или более наборов ‒ это набор элементов, общих для всех наборов.
Метод intersection() возвращает новый набор с элементами, общими для всех наборов. Пересечение двух или более наборов ‒ это набор элементов, общих для всех наборов.
Какая коллекция упорядочена, изменчива и допускает дублирование членов?
Anonymous Quiz
16%
dictionary
12%
set
59%
list
13%
tuple
PrettyTable в python
PrettyTable — это библиотека Python, разработанная для простого и быстрого отображения табличных данных в визуально удобных таблицах ASCII.
На примере добавлены данные по одному столбцу за раз. Для этого используется метод add_column, который принимает два аргумента, название столбца и список или кортеж, содержащий значения.
PrettyTable — это библиотека Python, разработанная для простого и быстрого отображения табличных данных в визуально удобных таблицах ASCII.
На примере добавлены данные по одному столбцу за раз. Для этого используется метод add_column, который принимает два аргумента, название столбца и список или кортеж, содержащий значения.
defaultdict: безошибочный словарь
Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку.
Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:
— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.
Обычный словарь dict в Python содержит пары вида «ключ:значение». Значение из словаря можно запросить по ключу. В случае если запрашиваемого ключа в словаре нет, Python выдаст ошибку.
Поведение логичное, но не слишком удобное для работы. Словарь defaultdict из библиотеки collections поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:
— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.