Саммерфилд - Программирование на Python 3 (1077331), страница 19
Текст из файла (страница 19)
Если опустить конечный индекс, по умолчанию будет использоваться значение 1ео(еес), при условии, что задано неотрицательное значение атер; в противном случае конечный индекс по умолчанию получит значение индекса перед началом строки. Мы не можем опустить значение атер, и оно не может быть равно нулю — если задание шага не требуется, то следует использовать вторую форму записи (с одним двоеточием), в которой шаг выбора элементов не указывается. На рис. 2.3 приводится пара примеров извлечения разреженных срезов из строки е, которая получена в результате присваивания е = тее ате саее1 гооО". Здесь мы использовали значения по умолчанию для начального и конечного индексов, то есть извлечение среза з[: >-2] начинается с последнего символа строки и извлекается каждый второй символ по направлению к началу строки. Аналогично извлечение среза е[::3] начинается с первого символа строки и извлекается каждый третий символ по направлению к концу строки.
Существует возможность комбинировать индексы с размером шага, как показано на рис. 2.4. Операция извлечения элементов с определенным шагом часто применяется к последовательностям, отличным от строк, но один из ее вариантов часто применяется к строкам: »> а, 5[:; -1] ('тое нахногх ноиао', 'вазон Кгочхан ест') Шаг -1 означает, что будет извлекаться каждый символ, от конца до начала, то есть будет получена строка, в которой символы следуют в обратном порядке.
92 Глава 2. Типы данных Рис. 2.4. Извлечение срезов из последовательности с определенным шагом Операторы и методы строк Поскольку строки относятся к категории неизменяемых последовательностей, все функциональные возможности, применимые к неизменяемым последовательностям, могут использоваться и со строками. Сюда входят оператор проверки на вхождение тп, оператор конкатенации «, оператор добавления в конец»=, оператор дублирования * и комбинированный оператор присваивания с дублированием *=.
Применение всех этих операторов в контексте строк мы обсудим в этом подразделе, а также обсудим большинство строковых методов. В табл. 2.7 приводится перечень всех строковых методов за исключением двух специализированных (втг. закат гапв() и в1г. 1гапз1ате( )), которые будут обсуждаться немного позже. Так как строки являются последовательностями, они являются объектами, имеющими «размер», и поэтому мы можем вызывать функцию 1еп(), передавая ей строки в качестве аргумента.
Возвращаемая функцией длина представляет собой количество символов в строке (ноль— для пустых строк). о Понятие «размер», стр. 443 Мы уже знаем, что перегруженная версия оператора «для строк выполняет операцию конкатенации. В случаях, когда требуется объединить множество строк, лучше использовать метод втг.)отп(). Метод принимает в качестве аргумента последовательность (то есть список или кортеж строк) и объединяет их в единую строку, вставляя между ними строку, относительно которой был вызван метод. Например: »> тгеаттвев = ("Агттпаеттса", "соптсв", "е1емептв") »> " ".1отп(тгеаттвев) 'Агттлаеттса Соптсв Е1еаептв' »> "-<>-".1отп(тгеаттзев) 'Агттпает1са-<>-соп1св-<>-е1евептв' »> "".1отп(тгеа11вев) 'Агттпееттсасоптсве1еаептв' Строки Таблица 2.7.
Строковые методы Синтаксис Описание я сар!тв1!ге() Возвращает копию строки я с первым символом в верхнем регистре; смотрите также метод я! г 1111е Возвращает копию строки в, отцентрированную в строке с длиной н то тп. Недостающие символы по умолчанию заполняются пробелами или символами в соответствии с необязательным аргументом сдаг (строка с длиной, равной 1); смотрите также методы ятг.
1)сят(), я!г. г)ивт() и в!г. Тсгнвт() я, сешег(юзтп, сваг) Возвращает число вхождений строки т в строку в (или в срез строки я[ягагт; епд]) в.ссспт(т, ягвгт, епй) Возвращает объект типа оутев, представТнп данных ляющий строку в кодировке по умолчанию Сут р 344 или в кодировке, определяемой аргументом епсошпд, с обработкой ошибок, определяеКсднрсвкн снимай необязательным аргументом егг Возвращает тгие, если строка в (или срез строки в[в!а гт впав]) оканчивается подстрокой х или любой из строк, если х — кортеж; в противном случае возвращает гв1ве.
Смотрите также метод в! г. маг!янин() в.епсосе( епсоюпд, егг) в епзвн!тн(х, вгагт, епс) Возвращает копию строки в, в которой символы табуляции замещены пробелами с шагом 8 или в соответствии со значе- нием необязательного аргумента яые я.ехрапстаея( в!ге) Возвращает позицию самого первого (крайнего слева) вхождения подстроки т в строку в (или в срез строки в [ я!а гт: епг)]), если подстрока т не найдена, возвращается -1. Для поиска самого последнего (крайнего справа) вхождения следует использовать метод втг, гг!пс(). Смотрите также метод втг.
!поен() в.ттпз(т, вгагт, епс) Возвращает копию строки в, отформатироМетод в!г. ванную в соответствии с заданными аргументами. Этот метод и его аргументы рас- стр тде сматриваются в следующем подразделе в.тогзвт(...) Возвращает позицию самого первого (крайнего слева) вхождения подстроки т в строку я (или в срез строки я [ я гатт; зппп); если подстрока т не найдена, возбуждается исключение уа1неЕггог. Для поиска самого последнего (крайнего справа) вхождения следует использовать метод в!г гт!пс() в.!паях(т, вгагс, епа) Первый пример является, пожалуй, наиболее типичным; он объединяет строки из списка, вставляя между ними единственный символ, зданием случае — пробел.
Третий пример представляет собой операцию конкатенации в чистом виде — благодаря тому что метод вызывается относительно пустой строки, строки объединяются без добавления чего бы то ни было между ними. 94 Глава 2. Типы данных Таблица 2.7 Гпродолжение) Синтаксис Описание Возвращает Тгое, если строка з не пустая и содержит только алФавитно-цифровые символы з.
ща1пое() з. 1за1риз( ) Возвращает Тгое, если строка з не пустая и содержит только алфавитные символы з.щоесгез1() Возвращает Тгое, если строка з не пустая и содержит только символы Юникода, обозначающие цифры десятичной систе- мы счисления з 1зсгр11() Возвращает Тгое, если строка з не пустая и содержит только символы АЗСН, обозначающие цифры десятичной системы счисления Возвращает Тгое, если строка з не пустая Идеитифииагои является допустимым идентификатором Возвращает Тгое, если строка з имеет хотя бы один символ, который может быть представлен в нижнем регистре, и все такие символы находятся в нижнем регистре; смотрите также метод згг.! пирре г() з. 1щсещгтгег() з.т)оиег() Возвращает Тгое, если строка з не пустая и содержит только символы Юникода, используемые для обозначения чисел з.1зпоееггс() з.
!зрг1п1ао)е() Возвращает Тгое, если строка з пустая или содержит только печатаемые символы, включая пробел, но не символ перево. да строки з.зззрасе() Возвращает Тгое, если строка з не пустая и имеет формат за- головка; смотрите также метод з1 г. 1г11е( ) з, щ1ы1е() з гзоррег() Возвращает Тгое, если строка з имеет хотя бы один символ, который может быть представлен в верхнем регистре, и все такие символы находятся в верхнем регистре; смотрите так- же метод ззг.
гз1оеег() Объединяет все элементы последовательности зеп, вставляя между ними строку з (которая может быть пустой строкой) з.)о(п(зеп) Возвращает копию строки з, выровненной по левому краю, в строке длиной иьци. Недостающие символы по умолчанию заполняются пробелами илн символами в соответствии с необязательным аргументом сваг (строка с длиной, равной 1). Для выравнивания по правому краю используйте метод з1г. г)оз1(), для выравнивания по центру — метод з1г. сепТег(); смотрите также метод згг. Тогезг() з. 1) оы( и1огп, сваг) Возвращает копию строки з, в которой все символы приведе- ны к нижнему регистру; смотрите также метод з1г, орре г( ) з.
1оие г() Возвращает Тгое, если строка з не пустая и содержит только пробельные символы Строки Синтаксис в.авпе1гвпв() в.рзг1т11оп (1) в.гер1зсе (1, п,и) в, вр!т1(1, и) в.вр1т11тпев (и) 3 втдгшэ11П (х, зтагт, еиб) в. втшр(спагз) в вэзрсзве() з.ттт)е() в. 1гвпв1вте() в сррег() 5.71111(э) Описание Парный метод для втг,тгапв1зте(); подробности приводятся в тексте Возвращает кортеж из трех строк — часть строки в перед самым первым (крайним слева) вхождением подстроки 1, 1 и часть строки в после подстроки 1; если подстрока 1 в строке в отсутствует, возвращаются строка в и две пустые строки. Для деления строки по самому последнему (крайнему справа) вхождению подстроки 1, используйте метод втг.
грзг1ытоп() Возвращает копию строки в, в которой каждое (но не более и, если этот аргумент определен) вхождение подстроки 1 замещается подстрокой и Возвращает список строк, выполняя разбиение строки в не более чем и раз по подстроке 1. Если число и не задано, разбиение выполняется по всем найденным подстрокам 1. Если подстрока 1 не задана, разбиение выполняется по пробельным символам.
Для выполнения разбиения строки, начиная с правого края, используйте метод втг. гвр)11 — этот метод имеет смысл применять, когда задано число разбиений и, которое меньше максимального числа возможных разбиений Возвращает список строк, выполняя разбиение строки в по символам перевода строки, удаляя их, если в аргументе Г не задано значение Тгпе Возвращает тгпе, если строка в (или срез строки в(зтагг; еиб)) начинается подстрокой х или любой из строк, если х — кортеж; в противном случае возвращает гз1ве. Смотрите также метод втг,епивэтш() Возвращает копию строки в, из которой удалены начальные и завершающие пробельные символы (или символы, входящие в строку сизгз).