Найти тему
Каждодневье

Строковые методы в Python часть-1

Пробежимся по всем методам, которыми можно модифицировать строки, найти искомое, определить содержимое. Их много, поэтому я буду строить содержимое не по популярности, а в алфавитном порядке. Так будет легче найти нужное - зная название метода (команды, операции).

В этом посте описаны следующие примеры работы методов:

  • str.capitalize()
    Делаем первые буквы в строке заглавными;
  • str.casefold()
    Сворачиваем регистр строки;
  • str.center()
    Выравниваем строку по центру;
  • str.count()
    Считаем совпадения в строках;
  • str.encode()
    Корректно переводим строку в байт-код;
  • str.endswith()
    Находим совпадение с концом строки;
  • str.expandtabs()
    Меняем табулятор на пробелы.

capitalize() - метод возвращает копию исходной строки и преобразует первый символ строки в заглавную (заглавную) букву, делая все остальные символы в строке строчными буквами.

Пример работы метода capitalize()
Пример работы метода capitalize()

casefold () - метод используется для реализации сопоставления строк без учета регистра. Он похож на строковый метод lower (), но только тут он удаляет все различия регистра, присутствующие в строке. т.е. будет полное игнорирование вида написания при сравнении. Метод актуален для редких символов. Примером будет немецкая строчная буква ß эквивалентна ss. Поскольку у буквы ß нет отличий нижнего регистра от верхнего, то метод lower() ничего не будет делать с буквой ß, а метод casefold() преобразует ее в ss.

Пример работы метода casefold() и сравнение с методом lower()
Пример работы метода casefold() и сравнение с методом lower()

center()- метод позиционирует значение переменной по центру, дополняя её справа и слева до требуемой длины (первый аргумент) указанным символом (второй аргумент). Если второй не указан - заполнение пробелами.

Пример работы метода str.center(width[, fillchar]) без второго аргумента и с ним.
Пример работы метода str.center(width[, fillchar]) без второго аргумента и с ним.

count() - метод возвращает числовое значение вхождений заданной подстроки в строке в заданном диапазоне индексов, если они переданы. Иначе смотрится вся строка. Без параметров ругнется исключением TypeError

Пример работы метода str.count(sub[, start[, end]]) с указанием диапазона и без указания.
Пример работы метода str.count(sub[, start[, end]]) с указанием диапазона и без указания.

encode() - метод возвращает новую версию строки str в заданной кодировке как объект байтов. В параметрах принимает кодировку и вариант обработки ошибок при кодировании.

Пример работы метода str.encode(encoding="utf-8", errors="strict")
Пример работы метода str.encode(encoding="utf-8", errors="strict")

Стандартные схемы обработки ошибок для метода encode():

  • strict - возвращается исключение UnicodeError, при попадании плохих символов* - дефолтно;
  • ignore - плохие символы* пропускаются;
  • replace - плохие символы* заменяются на знак вопроса;
  • xmlcharrefreplace - плохие символы* заменяются на соответствующее им XML-представление;
  • backslashreplace - плохие символы* заменяются на последовательности, начинающиеся с обратной косой черты;
  • namereplace - плохие символы* подменяютя последовательностями вида \N{...};
  • surrogateescape - заменяет каждый байт на код суррогатный, от U+DC80 до U+DCFF;
  • surrogatepass - игнорирует коды суррогатов. Используется со следующими кодеками: utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le;

*плохие символы - это символы, которые не поддерживаются указанной вами кодировкой либо заданной по умолчанию (utf-8).

endswith() - метод возвращает значение-булево: True, если строка заканчивается указанным суффиксом , в противном случае False. В параметры принимает суффикс(поддерживается итерация), начальные, конечные координаты поиска (необязательно.)

Пример работы метода str.endswith(suffix[, start[, end]]) без указания диапазона поиска.
Пример работы метода str.endswith(suffix[, start[, end]]) без указания диапазона поиска.

expandtabs() - метод возвращает копию строкис замещенными символами табуляции на один или несколько пробелов (зависит от таблицы), размер табуляции передается в параметре метода.

Тут немного сложновато конечно:

При исполнении метода номер столбца задаётся равным нулю с посимвольным обходом строкислева-направо.

Вместо символа табуляции \t вставляется столько пробелов, что бы индекс столбца стал равным позиции следующей табуляции. При этом сам символ табуляции не копируется.

Символы в строке \n \r сохраняются, а индекс столбца сбрасывается на 0. Другие символы копируются без изменений, а номер столбца увеличивается на единицу.

Простое представление "Таблонизатора" через метод str.expandtabs(tabsize=n)
Простое представление "Таблонизатора" через метод str.expandtabs(tabsize=n)
Посложнее, но показывает значение "tabs" в именовании метода.
Посложнее, но показывает значение "tabs" в именовании метода.
Продолжение следует.
Подписывайтесь на канал, сохраняйте в закладках.