Основы программирования на Python
Строки уже упоминались в уроке о типах данных; рассмотрим их более подробно.
Строка — это сложный тип данных, представляющий собой последовательность символов.
Строки в языке программирования Python могут заключаться как в одиночные, так и двойные кавычки. Однако, начало и конец строки должны обрамляться одинаковым типом кавычек.
Существует специальная функция len(), позволяющая измерить длину строки. Результатом выполнения данной функции является число, показывающее количество символов в строке.
Также для строк существуют операции конкатенации (+) и дублирования (*).
>>> len('It is a long string') 19 >>> '!!!' + ' Hello World ' + '!!!' '!!! Hello World !!!' >>> '-' * 20 '--------------------' >>>
В последовательностях важен порядок символов, у каждого символа в строке есть уникальный порядковый номер — индекс. Можно обращаться к конкретному символу в строке и извлекать его с помощью оператора индексирования, который представляет собой квадратные скобки с номером символа в них.
>>> 'morning, afternoon, night'[1] 'o' >>> tday = 'morning, afternoon, night' >>> tday[4] 'i' >>>
В примере, выражение 'morning, afternoon, night'[1] привело к извлечению второго символа. Дело в том, что индексация начинается не с единицы, а с нуля. Поэтому, когда требуется извлечь первый символ, то оператор индексирования должен выглядеть так: [0]. Также позволительно извлекать символы, начиная отсчет с конца. В этом случае отсчет начинается с -1 (последний символ).
>>> tday_ru = 'утро, день, ночь' >>> tday_ru[0] 'у' >>> tday_ru[-1] 'ь' >>> tday_ru[-3] 'о' >>>
Очевидно, что удобнее работать не с самими строками, а с переменными, которые на них ссылаются. Результат выполнения выражения индексирования можно присвоить другой переменной.
>>> a = "very big string" >>> a[6] 'i' >>> b = a[0] >>> b 'v' >>>
Можно извлекать из строки не один символ, а несколько, т.е. получать срез (подстроку). Оператор извлечения среза из строки выглядит так: [X:Y]. X – это индекс начала среза, а Y – его окончания; причем символ с номером Y в срез уже не входит. Если отсутствует первый индекс, то срез берется от начала до второго индекса; при отсутствии второго индекса, срез берется от первого индекса до конца строки.
>>> tday = 'morning, afternoon, night' >>> tday[0:7] 'morning' >>> tday[9:-7] 'afternoon' >>> tday[-5:] 'night' >>>
Кроме того, можно извлекать символы не подряд, а через определенное количество символов. В таком случае оператор индексирования выглядит так: [X:Y:Z]; Z – это шаг, через который осуществляется выбор элементов.
>>> str4 = "Full Ball Fill Pack Ring" >>> str4[::5] 'FBFPR' >>> str4[0:15:2] 'Fl alFl ' >>>