Главная » Просмотр файлов » Лутц М. - Изучаем Python

Лутц М. - Изучаем Python (1077325), страница 46

Файл №1077325 Лутц М. - Изучаем Python (Лутц М. - Изучаем Python) 46 страницаЛутц М. - Изучаем Python (1077325) страница 462018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 46)

Этот прием используется, когда искомые данные могут располагаться в произвольных позициях внутри строки: »> 11пе = 'ааа ЬЬЬ ссс' »> со1в = Ипе.вр111() »> со14 ['ааа'. 'ЬЬЬ', ссс'] Строковый метод зр)тт преобразует строку в список подстрок, окружающих строки-разделители. В предыдущем примере мы не указали строку-разделитель, поэтому в данном случае по умолчанию в качестве разделителей принимаются пробельные символы — строка разбивается на группы по символам пробела, табуляции или перевода строки, и в результате мы получили список подстрок. В других случаях данные могут отделяться другими разделителями.

В следующем примере производится разбиение (и, следовательно, разбор) строки по символу запятой, который обычно используется для отделения данных, извлеченных из баз данных: »> 11пе = 'ЬоЬ.ЬасКег,40' »> 11пе,вр111(',') ['ЬоЬ', 'Ьаскег', '40'] Разделители могут содержать более одного символа: »~ 11пе = Га езрааазРАК)оеоег)аск" »> 11пе.вр111("3РАН") ["Ч 'е", 'а', ' 1саЬег)асК'] Хотя оба способа, основанные на извлечении подстрок и разбиении строк, имеют определенные ограничения, они работают достаточно быстро и могут использоваться для разбора текстовой информации в простых случаях.

Другие часто используемые методы строк в действии Другие строковые методы имеют более специфическое предназначение, например, удаляют пробельные символы в конце текстовой строки, вы- 209 Строковые методы полняют преобразование регистра символов, проверяют характер со- держимого строки и проверяют наличие подстроки в конце строки: »> 11пе = "тпе нп1дьтв шпо зу иы 'тп" »> 11пе.гзтг1р() 'ТПЕ НП1ОПТЗ ипс Ву М1!' »> 11пе.цррег() 'ТНЕ КИ!ННТ8 ННО ЯУ И1!ч,п' »> 11пе.1вв1РЬз() Еа1зе »> 11пе,епазм11Ь('И1!'Тп') Тгце Для достижения тех же результатов в некоторых случаях могут использоваться альтернативные приемы — с использованием оператора проверки вхождения тп можно проверить присутствие подстроки, например, а функция получения длины строки и операция извлечения подстроки могут использоваться для имитации действия функции епдзш]Т Кн »> 11пе 'ТПе Кптевтв мво зу Мпч,п' »> 11пе.г1по('и1') 1= -1 Ф поиск с использованием амзова метода или амраиения Тгце »> 'И1' 1п Ыпе Тгце >» вцЬ = 'И1!~п' »> 11пе.епази11ь(зць) д проверка наличия подстроки в конце строки Тгце д с ломошью метода или операции извлечения подстроки »> 11пе(-1еп(вцв):] == вцЬ Тгце Для работы со строками существует достаточно много методов, однако мы не будем рассматривать их все.

Некоторые методы вы увидите далее в этой книге, а за дополнительной информацией вы можете обратиться к руководству по библиотеке языка Ру(]топ и другим источникам информации или просто поэкспериментировать с ними в интерактивном режиме. Обратите внимание: ни один из строковых методов не поддерживает шаблоны, для обработки текста с использованием шаблонов необходимо использовать модуль ге, входящий в состав стандартной библиотеки языка Ру1йоп, — дополнительный инструмент, начальные сведения о котором приводились в главе 4, а полное его обсуждение выходит далеко эа рамки этой книги.

Тем не менее, несмотря на это ограничение, строковые методы иногда оказываются эффективнее, чем функции модуля ге. Оригинальный модуль 91г] л9 История развития строковых методов достаточно запутанна. В течение первого десятилетия существования Ру1йоп в состав стандартной Глава 7, Строки библиотеки входил модуль всгшц, который содержал функции, во многом напоминающие современные строковые методы. В ответ на требования пользователей в версии РуС)топ 2.0 эти функции были преобразованы в методы строковых объектов.

Однако из-за большого объема программного кода, уже написанного к тому времени, оригинальный модуль всгспц был сохранен для обеспечения обратной совместимости. Ныне вы должны использовать не оригинальный модуль вС г( пц, а применять строковые методы. Фактически, как предполагается, оригинальные строковые функции, соответствующие методам, будут убраны нз состава стандартной библиотеки языка РуОтоп в версии З.О, которая должна быть выпущена после выхода в свет этого издания.

Однако, поскольку использование модуля в1г(пц еще можно встретить в старом программном коде, мы коротко рассмотрим его. В версии Ру()топ 2.5 по-прежнему существует два способа использования расширенных операций над строками: посредством вызова методов и вызовом функций модуля вС г(пц, которым в качестве аргумента передается объект строки. Например, допустим, что переменная Х ссылается на объект строки, тогда вызов метода объекта будет выглядеть следующим образом: х.ае1поо(агцоаепсв) что эквивалентно вызову аналогичной функции из модуля в1г(пц (представим, что этот модуль уже был импортирован): втгтпц.аасоос(Х.

агцоаептв) В следующем примере демонстрируется порядок использования метода: »> 3 'ааЬ+о+' »> х = З.гзр)аоа('+', 'зраа') »> х 'авраоовраасвраз' Чтобы выполнить ту же самую операцию с помощью модуля всг! пц, необходимо импортировать модуль (по крайней мере, один раз) и передать функции объект: »> сарогс зсгспд »> у = зсгспд.гар)аоз(3, '+', 'враз') »> аврааЬвраасврао' Поскольку подход, основанный на применении модуля, был стандартом на протяжении многих лет, а строки являются одним из центральных компонентов большинства программ, при анализе существующих программ вам в программном коде наверняка встретятся оба варианта работы со строками. И, тем не менее, при создании новых программ вместо функций устаревшего модуля вы должны использовать строковые методы.

Для это- Общие категории типов го есть и другие серьезные основания помимо того, что многие функции модуля вт ы од будут исключены из состава стандартной библиотеки с выходом РуФЬоп 3.0. Одна из таких причин — схема вызова модуля требует от вас импортировать модуль втг)пд (при использовании строковых методов ничего импортировать не нужно). Другая причина заключается в том, что при использовании функций модуля с клавиатуры приходится вводить на несколько символов больше (когда модуль загружается е использованием инструкции гярогт, а не ггов). И наконец, функции модуля выполняются несколько медленнее, чем методы (в настоящее время функции модуля отображаются на вызовы методов, в результате чего производятся дополнительные вызовы).

Оригинальный модуль втг(пд скорее всего останется в составе РуСЬоп 3.0, потому что в нем присутствуют дополнительные средства работы со строками, включая предопределенные строковые константы и систему шаблонных объектов (которая не описывается в этой книге; за дополнительной информацией обращайтееь к руководству по библиотеке языка РуФ)топ). Если вы не хотите модифицировать свой программный код после выхода версии 3.0, вы должны смотреть на базовые строковые функции как на призраки прошлого. Общие категории типов Теперь, когда мы исследовали строки, первый объект из коллекции языка Ру()топ, сделаем паузу, чтобы дать определение некоторым общим концепциям, применимым к большинству типов, которые будут рассматриваться дальше. Оказывается, что операции над встроенными типами работают одинаково в случае применения их к типам одной категории, поэтому нам необходимо лишь определить эти категории. К настоящему моменту мы исследовали только числа и строки, но так как они относятся к двум из трех основных категорий в языке Ру$)топ, то вы знаете о других типах гораздо больше, чем могли бы подумать.

Типы одной категории имеют общий набор операций Как вы уже знаете, строки представляют собой неизменяемые последовательности: они не могут быть изменены непосредственно (неизменяемые) и являются упорядоченными коллекциями элементов, доступ к которым может осуществляться по величине смещения (поеледовагпельноет и). Оказывается, над последовательностями, которые мы будем рассматривать в этой части книги, могут выполняться те же операции, которые были продемонстрированы в этой главе, — конкатенация, доступ к элементам по индексам, обход элементов в цикле и т.

д. Формально в языке РуФоп существует три категории типов (и операций): Числа Поддерживают операции сложения, умножения и т. д. г1г Глава 7. Строки Последовательности Поддерживают операции индексации, извлечения среза, конкатенации и т. д. Отображения Поддерживают операцию индексации по ключу и т. д. Мы еще не рассматривали подробно отображения (словари обсуждаются в следующей главе), но к другим типам, которые нам встретятся, в основном будут применимы одни и те же операции. Например, для любых объектов последовательностей Х и 1': ° Выражение Х ь '1' создает новый объект последовательности, включающий содержимое обоих операндов. ° Выражение Х * Ч создает новый объект последовательности, включающий й копий операнда Х. Другими словами, эти операции действуют одинаково на любые виды последовательностей, включая строки, списки, кортежи и некоторые типы, определяемые пользователем.

Единственное отличие состоит в том, что результат, возвращаемый выражением, имеет тот же тип, что и операнды Х и У, то есть, если выполняется операция конкатенации списков, то возвращается новый список, а не строка. Операции индексации и извлечения среза одинаково работают для любых последовательностей — тип объекта определяет, какая задача должна быть решена. Изменяемые типы допускают непосредственное изменение Классификация по возможности изменения — это существенное ограничение, чтобы не помнить о нем, и все же она часто сбивает с толку начинающих программистов.

Если объект является неизменяемым типом, вы не сможете изменить его значение непосредственно — в этом случае интерпретатор будет выдавать сообщение об ошибке. Вместо этого необходимо, чтобы программный код создавал новый объект, содержащий новое значение. Вообще неизменяемые типы обеспечивают определенный уровень поддержки целостности, гарантируя, что объект не подвергнется изменениям в другой части программы. Чтобы вспомнить, почему это имеет такое большое значение, вернитесь к дискуссии о разделяемых ссылках на объекты в главе 6. В заключение В этой главе мы подробно рассмотрели строковый тип объектов. Мы узнали о строковых литералах и исследовали операции нэд строками, включая операции над последовательностями, форматирование и методы.

Характеристики

Тип файла
DJVU-файл
Размер
11,21 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее