🐍 Укус питона 🐍
3K subscribers
604 photos
2 videos
273 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Параметры декоратора dataclass. Продолжение.

Применение параметров:

В данном случае включаем генерирование хеша и функций упорядочивания, а также явным образом переопределяем функцию repr для создания строкового представления объекта.

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Каков результат следующей операции над кортежем?
Anonymous Quiz
46%
(100, 200, 400, 500)
20%
(100, 300, 400, 500)
33%
AttributeError
Модуль dataclass. Data-классы. Значения по умолчанию.

При необходимости атрибутам можно присвоить значения по умолчанию, если в конструкторе им не передаются значения, смотрим пример:

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Сравнение последовательностей произвольных типов.

Класс SequenceMatcher() сравнивает две последовательности любых видов, если их элементы являются хешируемыми. Он использует алгоритм для идентификации наиболее длинных непрерывных блоков соответствия из последовательностей, устраняя "мусорные" значения, которые не вносят вклад в реальные данные.

Функция get_opcodes() класса SequenceMatcher() возвращает список инструкций для изменения первой последовательности, чтобы она соответствовала второй. Инструкции кодируются в виде пятиэлементных кортежей, включая строковую инструкцию и две пары индексов start и stop в последовательности, обозначаемые как i1, i2 и j1, j2.

В этом примере сравниваются два списка целых чисел, в котором используется метод get_opcodes() для получения инструкций по преобразованию исходного списка в более новую версию. Изменения примен. в обратном порядке, поэтому индексы списка остаются верными после добавл. и удаления элементов.

🐍 Укус питона // 💬 Чат // #теория #модули #difflib #типы
Каков тип следующей переменной?
Anonymous Quiz
5%
list
31%
tuple
4%
array
59%
str
Модуль dataclass. Data-классы. Добавление дополнительного функционала.

Хотя data-классы предназначены прежде всего для хранения различных данных, но также в них можно определять поведение с помощью дополнительных функций:

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Что выведет этот код?
Anonymous Quiz
18%
(‘Yellow’, 20, ‘Red’)
29%
TypeError
53%
Yellow
Работа со строками.

Строка представляет последовательность символов в кодировке Unicode, заключенных в кавычки. Причем для определения строк Python позволяет использовать как одинарные, так и двойные кавычики, первый пример:

Если строка длинная, ее можно разбить на части и разместить их на разных строках кода. В этом случае вся строка заключается в круглые скобки, а ее отдельные части - в кавычки, второй пример:

Если же мы хотим определить многострочный текст, то такой текст заключается в тройные двойные или одинарные кавычки, третий пример:

При использовани тройных одинарных кавычек не стоит путать их с комментариями: если текст в тройных одинарных кавычках присваивается переменной, то это строка, а не комментарий.

🐍 Укус питона // 💬 Чат // #теория #строки
Управляющие последовательности в строке.

Строка может содержать ряд специальных символов - управляющих последовательностей или escape-последовательности. Некоторые из них:
• : позволяет добавить внутрь строки слеш
• ': позволяет добавить внутрь строки одинарную кавычку
• ": позволяет добавить внутрь строки двойную кавычку
• \n: осуществляет переход на новую строку
• \t: добавляет табуляцию (4 отступа)

Используем некоторые последовательностей, смотрим пример:

Консольный вывод программы в примере:

🐍 Укус питона // 💬 Чат // #теория #строки
Что выведет этот код?
Anonymous Quiz
59%
TypeError
33%
1120
8%
‘a’
Управляющие последовательности в строке. Продолжение.

Хотя подобные последовательности могут нам помочь в некоторых делах, например, поместить в строку кавычку, сделать табуляцию, перенос на другую строку. Но они также могут и мешать. Например:

Здесь переменная path содержит некоторый путь к файлу. Однако внутри строки встречаются символы "\n", которые будут интерпретированы как управляющая последовательность. Так, мы получим следующий консольный вывод, конец примера:

Чтобы избежать подобной ситуации, перед строкой ставится символ r, второй пример:

🐍 Укус питона // 💬 Чат // #теория #строки