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

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

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

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

27 ( Х05, 2Г ) В+06. 17' Х (х, х, х) '1. 23 ~ 01. 23 ) +001. 2' »> "Хв" Х х, втг(х) ('1.23456789', '1 23456789') Форматирование строк из словаря Операция форматирования позволяет также использовать в спецификаторах формата ключи словаря, который указывается в правой части выражения, для извлечения соответствующих значений. Мы пока немного говорили о словарях, поэтому следующий пример демонстрирует самый простой случай: »> "Х(п)О Х(х)з" Х ("и"; 1, "х":"враз") 1 зраа' В данном случае (и) и (х) в строке формата ссылаются на ключи в словаре в правой части выражения и служат для извлечения соответствующих им значений. Этот прием часто используется в программах, создающих код разметки НТМХ или ХМ4., — вы можете построить словарь значений и затем подставить их все одним выражением форматирования, которое использует ключи: »> гер1у = """ Вгеет1пцз...

Не11о Х(паве)з! уоог аце вцоагес 1в Х(аце)в »> ча1оев = ('паее", 'ВоЬ', 'аце". 40) »> рг1пт гер1у Х ча1оез 0гееттпцз... Не1!о ВоЬ.' Уопг аце зциагес тв 40 Этот способ также часто используется в комбинации со встроенной функцией ча гз, которая возвращает словарь, содержащий все переменные, существующие на момент ее вызова: »> Гооа = 'враз' »> аце = 40 Глава 1. Строки »> чагв() ('терс'; 'враз', 'асе': 40, ...и еае мисмесгас других... Если применить эту функцию в правой части оператора форматирования, можно отформатировать значения, обращаясь к ним по именам переменных (то есть по ключам словаря): »> "Х(азв)а Х(твоа)в" Х чагв() '40 враз' Словари во всех подробностях мы будем изучать в главе 8. А в главе 5 вы найдете примеры использования спецификаторов%к и %0 для преобразования значений в шестнадцатеричное и восьмеричное строковое представление.

Строковые методы В дополнение к операторам выражений строки предоставляют набор методов, реализующих более сложные операции обработки текста, Методы — это простые функции, которые связаны с определенными объектами. Формально они являются атрибутами, присоединенными к объектам, которые ссылаются на функции. В языке Ру1)топ методы являютея специфичными для типов объектов: строковые методы, например, работают только с строковыми объектами. Если говорить более точно, функции — это пакеты программного кода, а вызовы методов объединяют в себе выполнение двух операций (извлечение атрибута и вызов функции). Извлечение атрибута Выражение в форме оЬ~есп агтгтсоге означает: «извлечь значение атрибута атттЬоте из объекта сЬ)ест». Вьсзов функции Выражение в форме Еопст)сп(агдоввпта) означает: «вызвать программный код функции гипс т) сп, передав ему ноль или более объектов-аргументов, разделенных запятыми, и вернуть значение функции».

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

Давайте перейдем к рассмотрению некоторых примеров. 205 Строковые методы Примеры использования строковых методов: изменение строк В табл. 7.4 приводятся шаблоны вызова встроенных строковых методов (более полный и обновленный перечень методов вы найдете в руководстве по стандартной библиотеке языка РуФ]аоп или воспользовавшись функцией Пе1р в интерактивной оболочке, передав ей любую строку). Строковые методы, представленные в этой таблице, реализуют высокоуровневые операции, такие как разбиение и слияние, преобразование регистра символов, проверка типа содержимого и поиск подстроки.

Таблица 7.4. Строггавые методы 8,сарма11гв() 8.свпввг(п1С1П) 8. 1]ов((х!ОГП) 8. 1охег() 8 оопп)(впь [, вгагг [, впс]]) 8.15(тр() 3.овсова([епсоо)пд [.аггогв]]) 8.гвр1аса(о)Э, пвп [, аахвР1Ы]) 3 апов„),П(во((1х [, , а. [, епсв 8 >пэ(воь [ а [ е"]]) Теперь давайте поработаем над программным кодом, который демонстрирует некоторые наиболее часто используемые методы в действии и попутно иллюстрирует основные приемы обработки текста, применяемые в языке РуФ])оп. Как уже говорилось ранее, строки являются неизменяемыми объектами, поэтому их невозможно изменить непосредственно.

Чтобы иэ существующей строки сконструировать новое текстовое значение, необходимо создать новую строку с помощью таких операций, как извлечение подстроки и конкатенация. Например, чтобы изменить два символа в середине строки, можно использовать такой способ: »> 8 'враээу' »> 3 3[:3] + 'хх' + 8[3:] 8 вхрапсгаьв([гаьвыв]) 8.(1пс(воь [, вгаг1 [, апс]]) 3.)поех(воо [, 5(аг( [, впо]]) 8. )ва1поэ() 3.1ва1РПа() 3,>вагди() 3,15)о>гаг() 8.>вврасе() 8,15гм15() 8.155РРаг() 8 1015(ввп) 3.ггпоах(воЬ [, 5(аг( [. апо]]) 8.г]овх(эхо(П) 8,га(г[Р() 8 во1[г([вер [,эахвР!ы ]]) 3,5Р1Ы11пев([кверепов]) 3.втагввю ЬП(рге(хх [, вваг( [, впав]]) 8.5(г[Р() 3.вэарсаве() 3.гм)в() 8.(гапв1а(е((ао15 [, С51спагв]) 3.оррвг() 20б Глава 7, Строки >» 3 зсдХХУ При этом, если требуется только заменить подстроку, можно восполь- зоваться методом гер1асе: »> 8 = 'араазу' »> 8 = з.гар1аоа('аа, 'хх') »> 8 'зрахху' Метод гер1асе является более универсальным, чем предполагает этот программный код.

Он принимает в качестве аргумента оригинальную подстроку (любой длины) и строку (любой длины) замены и выполняет глобальный поиск с заменой: »> 'ааЗЬЬЗссЗОО'.гар1аса('3', '3РАИ') 'аазРАМЬЬЗРАМссзРАМСО' В этой роли метод гер1асе может использоваться как инструмент реализации поиска с заменой по шаблону (например, замены символов формата). Обратите внимание, что на этот раз мы просто выводим результат на экран, а не присваиваем его переменной — присваивать результат переменной необходимо только в том случае, если потребуется сохранить результат дальнейшего использования. Если необходимо заменить одну подстроку фиксированного размера, которая может появиться в любом месте, можно также выполнить операцию замены или отыскать подстроку с помощью метода Г[пс и затем воспользоваться операциями извлечения подстроки: »> 3 = 'ххххзРАМххххзРАМхххх' »> злата = 8.41пс('ЗРАМ') »> илеге 4 »> 3 = 3[:ипага) 4 'Е668' + 3[(ипата+4): 1 »> 3 'ххххЕ668ххххзРАМхххх' Ф Поиск позиции 4 Подстрока найдена со сиеаениеи 4 Метод Гтпс возвращает смещение, по которому найдена подстрока (по умолчанию поиск начинается с начала строки), или значение -1, если искомая подстрока не найдена.

Другой вариант использования метода гер1асе заключается в передаче третьего аргумента, который определяет число производимых замен: »> 3 = 'ххххзРАИххххзРАИхххх' »> 3, гар1аса('8РАИ', 'Е668') 4 Эаиенить все найденние подстроки 'ххххЕ663ххххЕ663хххх' »> з.гар1аса('8РАИ', 'Е663', 1) 4 Заиенить одну подстроку 'хххх(663ххххзРАМхххх' Обратите внимание: метод гер1асе возвращает новую строку. Так как строки являются неизменяемыми, методы никогда в действительно- гоу Строковые методы сти не изменяют оригинальную строку, даже если они называются » гер1асе» (заменить)! »> 8 = 'зрааау' »> [ = )(вт(8) »> ['в', 'р', 'а', 'э', 'а', 'у'] Встроенная функция 1твт (или функция-конструктор объекта) создает новый список из элементов любой последовательности — в данном случае»разрывая» строку на символы и формируя из них список.

Обладая строкой в таком представлении, можно производить необходимые изменения, не вызывая создания новой копии строки при каждом изменении: »> [[3] = 'х' »> Ц41 = 'х' »> г в 'р', а', 'х', 'х', 'у'] д Этот приеи допустии дпя списков, ио ие дпя строк Если после внесения изменений необходимо выполнить обратное пре- образование (чтобы, например, записать результат в файл), можно ис- пользовать метод ]ото, который»собирает» список обратно в строку: »> 8 = ''.)о[п([) »> 8 'врахху' Метод )о1п на первый взгляд может показаться немного странным.

Так как он является строковым методом (а не методом списка), он вызывается через указание желаемой строки-разделителя. Метод ]ото объединяет строки из списка, вставляя строку-разделитель между элементами списка. В данном случае при получении строки из списка используется пустая строка-разделитель. В более общем случае можно использовать произвольную строку-разделитель: »> '8РАМ'.!о[п(['вдов', 'ваозаде', 'Паз', 'зоват']) 'еддз8РАмзаоваде8РАмпап8РАмтоаж ' Примеры методов строк: разбор текста Еще одна распространенная роль, которую играют методы строк, — это простейший разбор текста, то есть анализ структуры и извлечение подстрок.

Для извлечения подстрок из фиксированных смещений можно использовать прием извлечения срезов: Тот факт, что операция конкатенации и метод гвр1асе всякий раз создают новые строковые объекты, может оказаться недостатком их использования для изменения строк. Если в сценарии производится множество изменений длинных строк, вы можете повысить производительность сценария, преобразовав строку в объект, который допускает внесение изменений: 2ОВ Глава 7. Строки »> 11пе = 'ааа ЬЬЬ ссс' »> со11 = 11пе[0;3] »> со13 = 11пе[3: ] »> со11 'ааа' »> со13 'ссс' В этом примере поля данных располагаются в фиксированных позициях и потому могут быть легко извлечены из оригинальной строки. Этот прием может использоваться, только если анализируемые компоненты располагаются в известных фиксированных позициях. Если для разделения полей используется некоторый разделитель, можно воспользоваться методом разбиения строки на компоненты.

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

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

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

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