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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет этот код?
Anonymous Quiz
23%
5
40%
6
37%
7
Модуль difflib, сравнение текстовых строк. Продолжение.

Функция ndiff() модуля difflib производит же результат, смотрим пример:

В то время как класс difflib.Differ() показывает все входные строки, унифицированная функция unified_diff() содержит только измененные строки и немного контекста, второй пример:

Аргумент lineterm указывает функции unified_diff() о пропуске пустых строк, которые она возвращает. Новые строки добавляются ко всем строкам при их печати, для того что бы вывод был похож на популярные инструменты контроля версий.

Использование функции context_diff(), так же дает читаемый вывод.

🐍 Укус питона // 💬 Чат // #теория #модули #difflib
В 2023-м забыли о Data Science. Мир переключился на ИИ и только сейчас понял: без массивов нейросети — ничто.

Data Science накрывает вторая волна популярности. Зарплаты прыгнут до ₽750 тыс — пора действовать:

👉 Data Science | Machinelearning;

👉 About Python.

Эти каналы ведут сеньоры, которые делают российский ИИ уже 8 лет. Ежедневно публикуют инсайды, гайды и новости. Узнаете с нуля, как управлять терабайтами информации.

Всё под рукой, чтобы исправить баг одной фразой и быть впереди IT-новостей:

👉 Data Science | Machinelearning;

👉 About Python.
Модуль difflib, игнорирование строк и символов в анализе.

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

🐍 Укус питона // 💬 Чат // #теория #модули #difflib
Модуль difflib, игнорирование строк и символов в анализе. Продолжение.

По умолчанию класс Differ() не игнорирует никакие строки или символы явно, а скорее полагается на способность класса SequenceMatcher() обнаруживать шум. По умолчанию для функция difflib.ndiff() игнорируется пробел и символы табуляции.

🐍 Укус питона // 💬 Чат // #теория #модули #difflib
Что выведет этот код?
Anonymous Quiz
70%
PYnative
30%
zara
Модуль difflib, Сравнение последовательностей произвольных типов.

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

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

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

🐍 Укус питона // 💬 Чат // #теория #модули #difflib
Что выведет этот код?
Anonymous Quiz
28%
252 252
27%
252 253
45%
253 252
Модуль difflib, Сравнение последовательностей произвольных типов. Продолжение.

SequenceMatcher() работает с пользовательскими классами, а также со встроенными типами, если их элементы являются хешируемыми.

🐍 Укус питона // 💬 Чат // #теория #модули #difflib
Что выведет этот код?
Anonymous Quiz
14%
100.256 100
64%
100.256 100.000
22%
100.256 100.0
Модуль decimal. Продолжение.

В операциях с Decimal можно использовать целые числа, смотрим код:

Однако нельзя смешивать в операциях дробные числа float и Decimal, вторая часть кода:

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

Строка "0.10" определяет два знака в дробной части, даже если последние символы будут представлять ноль. Соответственно "0.100" представляет три знака в дробной части.

🐍 Укус питона // 💬 Чат // #теория #модули #decimal
Что выведет этот код?
Anonymous Quiz
25%
101 10 1F
55%
5 8 31
21%
Syntax Error: Invalid Token