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

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

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

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

Здесь будет представлен основной строковыйтип str, который применяется для работы с текстовыми данными ASCII и принцип действия которого не изменяется в разныхверсиях Python. То есть эта глава преднамеренно ограничивается изучением основных способов обработки строк, которые применяются в большинстве сценариев на языке Python.С более формальной точки зрения, ASCII����������������������������������������������������� – это всего лишь разновидность текста Юникода. Различие между текстовыми и двоичными данными в языке Python обеспечивается за счет поддержки различных типов данных:•• В Python 3.0 существует три строковых типа: str – для представления текста Юникода (содержащего символы в кодировкеASCII и сим­­волы в других кодировках), bytes – для представления двоичных данных (включая кодированный текст) и byte­array – изменяемый вариант типа bytes.•• В Python 2.6 для представления текста Юникода используетсятип unicode, а для представления двоичных и текстовых данных, состоящих из 8-битных символов, используется тип str.210Глава 7.

СтрокиТип bytearray также доступен в версии 2.6, но не в более ранних версиях,и он не так тесно связан с двоичными данными, как в версии 3.0. Поскольку большинству программистов не требуется полное знание всех тонкостейкодирования Юникода или форматов представления двоичных данных,я поместил описание всех этих тонкостей в раздел «Расширенные возможности» этой книги, в главу 36.Если вам действительно потребуется знание расширенных концепций работы со строками, таких как альтернативные наборы символов или упакованные двоичные данные и файлы, после знакомства с материалом, которыйприводится здесь, обращайтесь к главе 36. А теперь мы сосредоточимся наосновном строковом типе и на его операциях. Основы, которые мы будемздесь рассматривать, в равной степени относятся и к дополнительным строковым типам в языке Python.Литералы строкВообще говоря, работать со строками в языке Python достаточно удобно.

Самое сложное, пожалуй, – это наличие множества способов записи строк в программном коде:•• Строки в апострофах: ‘spa”m’•• Строки в кавычках: “spa’m”•• Строки в тройных кавычках: ‘’’... spam ...’’’, “””... spam ...”””•• Экранированные последовательности: “s\tp\na\0m”•• Неформатированные строки: r”C:\new\test.spm”•• Строки байтов в версии 3.0 (глава 36): b’sp\x01am’•• Строки символов Юникода, только в версии 2.6 (глава 36): u’eggs\u0020spam’Варианты представления строк в апострофах и кавычках являются наиболеетипичными, остальные играют особую роль, и мы отложим обсуждение последних двух форм до главы 36.

Давайте коротко рассмотрим каждый из этихвариантов.Строки в апострофах и в кавычках – это одно и то жеКавычки и апострофы, окружающие строки, в языке Python������������������������������������являются взаимозаменяемыми. То есть строковые литералы можно заключать как в апострофы, так и в кавычки – эти две формы представления строк ничем не отличаются, и обе они возвращают объект того же самого типа. Например, следующиедве строки совершенно идентичны:>>> ‘shrubbery’, “shrubbery”(‘shrubbery’, ‘shrubbery’)Причина наличия двух вариантов состоит в том, чтобы позволить вставлятьв литералы символы кавычек и апострофов, не используя для этого символ обратного слеша.

Вы можете вставлять апострофы в строки, заключенные в кавычки, и наоборот:>>> ‘knight”s’, “knight’s”(‘knight”s’, “knight’s”)Литералы строк211Между прочим, Python автоматически объединяет последовательности строковых литералов внутри выражения, хотя нет ничего сложного в том, чтобы добавить оператор + между литералами и вызвать операцию конкатенации явно:>>> title = “Meaning “ ‘of’ “ Life” # Неявная конкатенация>>> title‘Meaning of Life’Обратите внимание, если добавить запятые между этими строками, будет получен кортеж, а не строка.

Кроме того, заметьте, что во всех этих примерахинтерпретатор предпочитает выводить строки в апострофах, если их нет внутри строки. Кавычки и апострофы можно вставлять в строки, экранируя ихсимволом обратного слеша:>>> ‘knight\’s’, “knight\”s”(“knight’s”, ‘knight”s’)Чтобы понять, зачем, вам необходимо узнать, как работает механизм экранирования вообще.Экранированные последовательностипредставляют служебные символыВ последнем примере кавычка и апостроф внутри строк предваряются символом обратного слеша.

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

Например, ниже приводится строка из пяти символов,в которую вставлены символ новой строки и табуляции:>>> s = ‘a\nb\tc’Последовательность \n образует единственный символ – байт, содержащийдвоичное значение кода символа новой строки в используемом наборе символов (обычно ASCII-код 10). Аналогично последовательность \t замещается символом табуляции.

Как будет выглядеть такая строка при печати, зависит оттого, как она выводится. Функция автоматического вывода в интерактивнойоболочке отобразит служебные символы как экранированные последовательности, а инструкция print будет интерпретировать их:>>> s‘a\nb\tc’>>> print(s)abcЧтобы окончательно убедиться, сколько байтов входит в эту строку, можновоспользоваться встроенной функцией len – она возвращает фактическое число байтов в строке независимо от того, как строка отображается на экране:>>> len(s)5212Глава 7. СтрокиДлина этой строки составляет пять байтов: она содержит байт ASCII-символаa, байт символа новой строки, байт ASCII-символа b и так далее.

Обратите внимание, что символы обратного слеша не сохраняются в памяти строкового объекта – они используются лишь для того, чтобы вынудить интерпретатор сохранить значения байтов в строке. Для представления служебных символов языкPython обеспечивает полный набор экранированных последовательностей,перечисленных в табл. 7.2.Таблица 7.2.

Экранированные последовательностиПоследовательностьНазначение\newlineИгнорируется (продолжение на новой строке)\\Сам символ обратного слеша (остается один символ \)\’Апостроф (остается один символ ‘)\”Кавычка (остается один символ “)\aЗвонок\bЗабой\fПеревод формата\nНовая строка (перевод строки)\rВозврат каретки\tГоризонтальная табуляция\vВертикальная табуляция\xhhСимвол с шестнадцатеричным кодом hh(не более 2 цифр)\oooСимвол с восьмеричным кодом ooo (не более 3 цифр)\0Символ Null (не признак конца строки)\N{id}Идентификатор ID базы данных Юникода\uhhhh16-битный символ Юникода в шестнадцатеричномпредставлении\Uhhhhhhhh32-битный символ Юникода в шестнадцатеричномпредставленииa\другоеНе является экранированной последовательностью(символ обратного слеша сохраняется)Некоторые экранированные последовательности позволяют указывать абсолютные двоичные значения в байтах строк.

Например, ниже приводится пример строки из пяти символов, содержащей два нулевых байта:aЭкранированная последовательность \Uhhhhhhhh состоит ровно из восьми шестнадцатеричных цифр (h). Последовательности \u и \U могут использоваться только в литералах строк символов Юникода.Литералы строк213>>> s = ‘a\0b\0c’>>> s‘a\x00b\x00c’>>> len(s)5В языке Python нулевой байт (символ null) не является признаком завершениястроки, как в языке C. Интерпретатор просто сохраняет в памяти как текстсамой строки, так и ее длину.

Фактически в языке Python вообще нет символа,который служил бы признаком завершения строки. Ниже приводится строка,полностью состоящая из экранированных кодов, – двоичные значения 1 и 2(записаны в восьмеричной форме), за которыми следует двоичное значение 3(записано в шестнадцатеричной форме):>>> s = ‘\001\002\x03’>>> s‘\x01\x02\x03’>>> len(s)3Обратите внимание, что интерпретатор �����������������������������������Python�����������������������������отображает непечатаемые символы в шестнадцатеричном представлении, независимо от того, в каком видеони были указаны внутри литерала. Вы без ограничений можете комбинировать абсолютные экранированные значения с другими типами экранированных последовательностей, которые приводятся в табл. 7.2.

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

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

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

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