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

Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 59

Файл №1184811 Марк Лутц - Изучаем Python, Четвертое издание (Марк Лутц - Изучаем Python, Четвертое издание) 59 страницаМарк Лутц - Изучаем Python, Четвертое издание (1184811) страница 592020-08-21СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

СтрокиТогда каким образом в языке Python производить изменение текстовой информации? Чтобы изменить строку, необходимо создать новую строку с помощьютаких операций, как конкатенация и извлечение подстроки, и затем, если этонеобходимо, присвоить результат первоначальному имени:>>> S = S + ‘SPAM!’ # Чтобы изменить строку, нужно создать новую>>> S‘spamSPAM!’>>> S = S[:4] + ‘Burger’ + S[-1]>>> S‘spamBurger!’Первый пример добавляет подстроку в конец строки S с помощью операцииконкатенации. В действительности здесь создается новая строка, которая затем присваивается имени S, но вы можете представить себе это действие как«изменение» первоначальной строки. Второй пример замещает четыре символа шестью новыми – с помощью операций извлечения подстроки и конкатенации.

Как будет показано далее в этой главе, похожего эффекта можно добитьсяс помощью строкового метода replace. Вот как это выглядит:>>> S = ‘splot’>>> S = S.replace(‘pl’, ‘pamal’)>>> S‘spamalot’Как и всякая операция, создающая новую строку, строковые методы создаютновые строковые объекты.

Если вам необходимо сохранить эти объекты, выможете присвоить их переменной. Создание нового объекта строки для каждого изменения – операция не столь неэффективная, как может показаться, –вспомните, в предыдущей главе говорилось, что интерпретатор автоматическипроизводит сборку мусора (освобождает память, занятую неиспользуемымистроковыми объектами), поэтому новые объекты повторно используют память,ранее занятую прежними значениями.

Интерпретатор ���������������������Python���������������во многих случаях работает гораздо быстрее, чем можно было бы ожидать.Наконец, дополнительно существует возможность сборки текстовых значенийс помощью выражений форматирования строк. Ниже приводятся два примераподстановки значений объектов в строку, при этом происходит преобразование объектов в строки и изменение первоначальной строки в соответствии соспеци­фикаторами формата:>>> ‘That is %d %s bird!’ % (1, ‘dead’)# Выражение форматированияThat is 1 dead bird!>>> ‘That is {0} {1} bird!’.format(1, ‘dead’) # Метод форматирования‘That is 1 dead bird!’# в 2.6 и 3.0Несмотря на впечатление, что происходит замена символов в строке, в действительности в результате форматирования получаются новые строковые объекты, а оригинальные строки не изменяются. Мы будем рассматривать приемыформатирования ниже, в этой же главе, где вы увидите, что операции форматирования могут иметь большую практическую пользу, чем в этом примере.Второй пример представляет строковый метод; и мы в первую очередь познакомимся с методами строк, а потом перейдем к изучению приемов форматирования.Строковые методы227Как будет показано в главе 36, в Python 3.0 и 2.6 появился новыйстроковый тип bytearray, который относится к категории изменяемых, в том смысле, что объекты этого типа могут изменятьсянепосредственно.

В действительности объекты типа bytearray неявляются строками – это последовательности 8-битных целыхчисел. Однако они поддерживают большую часть строковыхопераций и при отображении выводятся как строки символовASCII. Объекты этого типа обеспечивают возможность хранения больших объемов текста, который требуется изменять достаточно часто. В главе 36 мы также увидим, что функции ordи chr способны работать с символами Юникода, которые могутхраниться в нескольких байтах.Строковые методыВ дополнение к операторам выражений строки предоставляют набор методов,реализующих более сложные операции обработки текста.

Методы – это просто функции, которые связаны с определенными объектами. Формально ониявляются атрибутами, присоединенными к объектам, которые ссылаются нафункции. В языке Python выражения и встроенные функции могут работатьс некоторым набором типов, но методы являются специфичными для типовобъектов: строковые методы, например, работают только со строковыми объектами. В ����������������������������������������������������������������Python���������������������������������������������������������� 3.0 некоторые методы могут относиться к разным типам (например, многие типы имеют метод count), но при этом по своей функциональности они в большей степени зависят от типа объекта, чем другие инструменты.Если говорить более точно, функции – это пакеты программного кода, а вызовы методов объединяют в себе выполнение двух операций (извлечение атрибута и вызов функции).Извлечение атрибутаВыражение вида object.attribute означает: «извлечь значение атрибута attribute из объекта object».Вызов функцииВыражение вида function(arguments) означает: «вызвать программный кодфункции function, передав ему ноль или более объектов-аргументов arguments, разделенных запятыми, и вернуть значение функции».Объединение этих двух действий позволяет вызвать метод объекта.

Выражение вызова метода object.method(arguments) вычисляется слева направо, то естьинтерпретатор сначала извлекает метод объекта, а затем вызывает его, передавая ему входные аргументы. Если метод возвращает какой-либо результат, онстановится результатом всего выражения вызова метода.Как будет много раз показано в этой части книги, большинство объектов обладает методами, которые можно вызвать, и все они доступны с использованиемодного и того же синтаксиса вызова метода.

Чтобы вызвать метод объекта, вампотребуется существующий объект. Давайте перейдем к рассмотрению некоторых примеров.228Глава 7. СтрокиВ табл. 7.3 приводятся шаблоны вызова встроенных строковых методов в версии Python 3.0 (более полный и обновленный перечень методов вы найдетев руководстве по стандартной библиотеке языка Python или воспользовавшисьфункцией help в интерактивной оболочке, передав ей любую строку). В ���Python 2.6 набор строковых методов немного отличается – в их число, например,входит метод decode, потому что работа со строками Юникода в этой версии реализована несколько иначе (подробнее об этом рассказывается в главе 36).

В таблице имя S представляет объект строки, а необязательные аргументы заключены в квадратные скобки. Строковые методы, представленные в этой таблице,реализуют высокоуровневые операции, такие как разбиение и слияние, преобразование регистра символов, проверка типа содержимого и поиск подстроки.Таблица 7.3. Строковые методыS.capitalize()S.ljust(width [, fill])S.center(width [, fill]))S.lower()S.count(sub [, start [, end]])S.lstrip([chars])S.encode([encoding [,errors]])S.maketrans(x[, y[, z]])S.endswith(suffix [, start [,end]])S.partition(sep)S.expandtabs([tabsize])S.replace(old, new [, count])S.find(sub [, start [, end]])S.rfind(sub [,start [,end]])S.format(fmtstr, *args, **kwargs) S.rindex(sub [, start [, end]])S.index(sub [, start [, end]])S.rjust(width [, fill])S.isalnum()S.rpartition(sep)S.isalpha()S.rsplit([sep[, maxsplit]])S.isdecimal()S.rstrip([chars])S.isdigit()S.split([sep [,maxsplit]])S.isidentifier()S.splitlines([keepends])S.islower()S.startswith(prefix [, start [, end]])S.isnumeric()S.strip([chars])S.isprintable()S.swapcase()S.isspace()S.title()S.istitle()S.translate(map)S.isupper()S.upper()S.join(iterable)S.zfill(width)Как видите, строковых методов достаточно много, а в книге не так много места,чтобы иметь возможность описать их все, поэтому за подробной информациейобращайтесь���������������������������������������������������������������������������������������������������������������������������к������������������������������������������������������������ �����������������������������������������������������������руководству�����������������������������������������������������������������������������������������������по�����������������������������������������������������������������������������������������стандартной�����������������������������������������������������������������библиотеке����������������������Python или�����������������������������������к��������� ��������справоч-Строковые методы229ным�����������������������������������������������������������������������������������������������������������������������������������������руководствам��������������������������������������������������������.

������������������������������������������������������А теперь давайте поработаем над программным кодом, который демонстрирует некоторые наиболее часто используемые методы в действии и попутно иллюстрирует основные приемы обработки текста, применяемые в языке Python.Примеры использования строковых методов:изменение строкКак уже говорилось ранее, строки являются неизменяемыми объектами,поэтому их невозможно изменить непосредственно. Чтобы из существующейстроки сконструировать новое текстовое значение, необходимо создать новуюстроку с помощью таких операций, как извлечение подстроки и конкатенация.Например, чтобы изменить два символа в середине строки, можно использовать такой способ:>>> S = ‘spammy’>>> S = S[:3] + ‘xx’ + S[5:]>>> S‘spaxxy’При этом, если требуется только заменить подстроку, можно воспользоватьсяметодом replace:>>> S = ‘spammy’>>> S = S.replace(‘mm’, ‘xx’)>>> S‘spaxxy’Метод replace является более универсальным, чем предполагает этот программный код.

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

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

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

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