Модуль 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 поступает иначе: если запросить у такого продвинутого словаря ключ, которого в нём нет, он не обидится и не выкинет ошибку, а вместо этого:
— создаст этот ключ;
—создаст к нему значение, которое будет иметь тип, оговорённый по умолчанию («по дефолту» — отсюда, кстати, и название), — например, целое число или строку;
—вернёт вам это значение.
