Строки

Повторение

What’s New In Python 3.6 Сюда стоит заглянуть!

Лексикографическое сравнение

Сначала сравниваются первые элементы последовательностей, и, если они отличаются, то результат их сравнения определяет результат; если они равны, сравниваются следующие элементы и т.д., пока не будет определен результат или одна из последовательностей не будет исчерпана. Если два элемента сами являются последовательностями одного типа, то лексикографическое сравнение выполняется рекурсивно. Если все элементы двух последовательностей в результате сравнения оказываются равными, то последовательности считаются равными. Если одна из последовательностей является началом другой, то меньшей считается последовательность с меньшим количеством элементов. Лексикографический порядок строк определяется порядком следования ASCII символов.

1.PNG

Вспомним методы списков и рассмотрим несколько новых.

a.count(x) - Возвращает количество элементов со значением x.
a.insert(I,x) - Вставляет на i-ый элемент значение x.
a.remove(x) - Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует.
a.extend(list) - Расширяет список, добавляя в конец все элементы списка list.

Вспомним о том, что можно написать циклический конструктор.

2.PNG

Строки

Мы уже знакомы с понятием “строки”. Начнем с того, как задавать строку. Не имеет значение, в каких кавычках писать строку. Это могут быть и “ ”и ‘ ’.

3.PNG

Обращаем внимание на то, что если строка уже содержит кавычки, то стоит записать эту строку в одинарных кавычках. Печатное представление символа перевода строки

4.PNG

Строковое представления берется из метода __repr__. Была сгенерирована строка, а от неё представление.

5.PNG

Следует отметить опасность использования \. \b, \t, \r….

6.PNG

Что представляют собой строки как объекты Python?

7.PNG

__iter__ - строка является последовательностью.
__getitem__ - строка является индексируемой последовательностью.

Строки можно поместить в место, где происходит распаковка или итерирование.

8.PNG

И в цикл for

9.PNG

Замечание: элементами строки являются строки единичной длины. В следующем примере возвращается одно и тоже…

10.PNG

Как работает операция проверки принадлежности?

11.PNG

В случае строк операция in проверяет наличие подстроки в строке. Встроенные методы – это основа списков. Хотя многие из них бессмысленные. Рассмотрим несколько таких методов.

12.PNG

s.lower()-заменяет все символы строки соответствующими строчными буквами.
s.casefold() – аналогично s.lower, но дополнительно преобразует все символы с диакрическими знаками и лигатуры в буквы стандартной латиницы. Обычно применяется для сравнения строк.

13.PNG

Из строки делаем шестизначную строку. Забиваем нулями недостающую длину.

14.PNG

Более интересные штуки

15.PNG

Метод strip() позволяет обрезать пробельные символы с краев строки.

16.PNG

Метод replace() заменяет все или n вхождений строки.

17.PNG

Метод partition() возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки.

18.PNG

Метод split() возвращает список строк, разрезав исходную строку на части по пробелам.

Метод join(). У этого метода один параметр: список строк. В результате получается строка, полученная соединением элементов списка (которые переданы в качестве параметра) в одну строку, при этом между элементами списка вставляется разделитель, равный той строке, к которой применяется метод.

Но у метода split() есть другой способ работы.

19.PNG

Нет “а”, так как “а” была разделителем. Как мы увидели, различие состоит в том, что если split() без параметра, то удаляются все пробельные символы.

Форматирование строк с помощью метода format

Иногда возникают ситуации, когда нужно сделать строку, подставив в неё некоторые данные, полученные в процессе выполнения. Подстановку данных можно сделать с помощью форматирования строк. Форматирование можно сделать с помощью оператора %, либо с помощью метода format.

20.PNG

Передаем столько параметром, сколько скобок в строке форматирования. Напишем программу.

21.PNG

22.PNG

Модифицируем программу.

Переводим кортежи в строки, затем с помощью join объединяем строки.

23.PNG

24.PNG

Строки не хранятся по байтам. Они перекодированы в юникод. Современная кодировка содержит неизвестное количество байтов.

s.encode() – побайтно выведенная строка.

LecturesCMC/PythonIntro2017/06_Strings/Conspect (последним исправлял пользователь AslanAshabokov 2017-12-29 12:16:34)