Обновление данных
Для работы с бинарными файлами в Python может применяться модуль - shelve. Он сохраняет объекты в файл с определенным ключом. Давайте рассмотрим обновление данных для этого модуля.
Для изменения данных достаточно присвоить по ключу новое значение, а для добавления данных - определить новый ключ, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #shelve #данные
Для работы с бинарными файлами в Python может применяться модуль - shelve. Он сохраняет объекты в файл с определенным ключом. Давайте рассмотрим обновление данных для этого модуля.
Для изменения данных достаточно присвоить по ключу новое значение, а для добавления данных - определить новый ключ, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #shelve #данные
Что выведет этот код?
Anonymous Quiz
50%
1 2 3 4 5 6.
13%
1 2 3 4 5 6 7.
25%
error.
12%
None of these
Игнорирование значений
Если какой-то элемент коллекции не нужен, то обычно для него определяется переменная с именем _ (прочерк), смотрим пример:
Здесь нам не важен второй элемент кортежа, поэтому для него определяем переменную _. Хотя в реальности _ - такое же действительное имя, как name и company, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #распаковка #значения
Если какой-то элемент коллекции не нужен, то обычно для него определяется переменная с именем _ (прочерк), смотрим пример:
Здесь нам не важен второй элемент кортежа, поэтому для него определяем переменную _. Хотя в реальности _ - такое же действительное имя, как name и company, вторая часть кода:
🐍 Укус питона // 💬 Чат // #теория #распаковка #значения
Замена в строке
● Для замены в строке одной подстроки на другую применяется метод replace():
● replace(old, new): заменяет подстроку old на new
replace(old, new, num): параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
🐍 Укус питона // 💬 Чат // #теория #строки
● Для замены в строке одной подстроки на другую применяется метод replace():
● replace(old, new): заменяет подстроку old на new
replace(old, new, num): параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
🐍 Укус питона // 💬 Чат // #теория #строки
Параметры декоратора dataclass
С помощью параметров декоратор dataclass позволяет сгенерировать дополнительный шаблонный код и вообще настроить генерацию кода, смотрим код:
Рассмотрим базовые параметры:
● init: если равно True, то генерируется функция init(). По умолчанию равно True
● repr: если равно True, то генерируется функция repr(), которая возвращает строковое представление объекта. По умолчанию равно True
● eq: если равно True, то генерируется функция eq(), которая сравнивает два объекта. По умолчанию равно True
● order: если равно True, то генерируются функции lt (операция <), le (<=), gt (>), ge (>=), которые применяются для упорядочивания объектов. По умолчанию равно False
● unsafe_hash: если равно True, то генерируется функция hash(), которая возвращает хеш объекта. По умолчанию равно False
🐍 Укус питона // 💬 Чат // #теория #dataclass
С помощью параметров декоратор dataclass позволяет сгенерировать дополнительный шаблонный код и вообще настроить генерацию кода, смотрим код:
Рассмотрим базовые параметры:
● init: если равно True, то генерируется функция init(). По умолчанию равно True
● repr: если равно True, то генерируется функция repr(), которая возвращает строковое представление объекта. По умолчанию равно True
● eq: если равно True, то генерируется функция eq(), которая сравнивает два объекта. По умолчанию равно True
● order: если равно True, то генерируются функции lt (операция <), le (<=), gt (>), ge (>=), которые применяются для упорядочивания объектов. По умолчанию равно False
● unsafe_hash: если равно True, то генерируется функция hash(), которая возвращает хеш объекта. По умолчанию равно False
🐍 Укус питона // 💬 Чат // #теория #dataclass
Генерация исключений и оператор raise
Иногда возникает необходимость вручную сгенерировать то или иное исключение. Для этого применяется оператор raise. Например, сгенерируем исключение в примере:
Оператору raise передается объект BaseException - в данном случае объект Exception. В конструктор этого типа можно ему передать сообщение, которое затем можно вывести пользователю. В итоге, если number2 будет равно 0, то сработает оператор raise, который сгенерирует исключение. В итоге управление программой перейдет к блоку except, который обрабатывает исключения типа Exception.
🐍 Укус питона // 💬 Чат // #теория #исключения
Иногда возникает необходимость вручную сгенерировать то или иное исключение. Для этого применяется оператор raise. Например, сгенерируем исключение в примере:
Оператору raise передается объект BaseException - в данном случае объект Exception. В конструктор этого типа можно ему передать сообщение, которое затем можно вывести пользователю. В итоге, если number2 будет равно 0, то сработает оператор raise, который сгенерирует исключение. В итоге управление программой перейдет к блоку except, который обрабатывает исключения типа Exception.
🐍 Укус питона // 💬 Чат // #теория #исключения
Что выведет этот код?
Anonymous Quiz
19%
[1, 3.1, 5.31, 7.531]
53%
[7.531, 5.31, 3.1, 1]
8%
IndexError
21%
AttributeError: объект «NoneType» не имеет атрибута «REVERSE»
Получение подстроки
При необходимости мы можем получить из строки не только отдельные символы, но и подстроку. Для этого используется следующий синтаксис:
• string[:end]: извлекается последовательность символов начиная с 0-го индекса по индекс end (не включая)
• string[start:end]: извлекается последовательность символов начиная с индекса start по индекс end (не включая)
• string[start:end:step]: извлекается последовательность символов начиная с индекса start по индекс end (не включая) через шаг step
Используем все варианты получения подстроки, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #строки
При необходимости мы можем получить из строки не только отдельные символы, но и подстроку. Для этого используется следующий синтаксис:
• string[:end]: извлекается последовательность символов начиная с 0-го индекса по индекс end (не включая)
• string[start:end]: извлекается последовательность символов начиная с индекса start по индекс end (не включая)
• string[start:end:step]: извлекается последовательность символов начиная с индекса start по индекс end (не включая) через шаг step
Используем все варианты получения подстроки, смотрим код:
🐍 Укус питона // 💬 Чат // #теория #строки
Объединение строк
Одной из самых распространенных операций со строками является их объединение или конкатенация. Для объединения строк применяется операция сложения, первый пример 👀:
С объединением двух строк все просто, но что, если нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции str(), внимание на второй пример:
🐍 Укус питона // 💬 Чат // #теория #строки
Одной из самых распространенных операций со строками является их объединение или конкатенация. Для объединения строк применяется операция сложения, первый пример 👀:
С объединением двух строк все просто, но что, если нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции str(), внимание на второй пример:
🐍 Укус питона // 💬 Чат // #теория #строки