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

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

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

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

° Если границы не указаны, по умолчанию они принимаются равными О и длине последовательности. ° Выражение 8[1: 3] извлекает элементы со смещениями от 1 до 3 (не включая элемент со смещением 3). 194 Глава 7. Строки ° Выражение 8[1; ] извлекает элементы, начиная со смещения 1 и до конца (длина последовательности). ° Выражение 8[: 3] извлекает элементы, начиная со смещения О и до 3 (не включая его).

° Выражение 8[: -1] извлекает элементы, начиная со смещения О и до последнего (не включая его). ° Выражение 8[: ] извлекает элементы, начиная со смещения О и до конца — это эффективный способ создать поверхностную копию последовательности 8. Последний пункт списка — это самый обычный трюк: с его помощью создается полная поверхностная копия объекта последовательности, то есть объект с тем же значением, но расположенный в другой области памяти (подробнее о копировании объектов рассказывается в главе 9). Этот прием не очень полезен при работе с неизменяемыми объектами, такими как строки, но его ценность возрастает при работе с объектами, которые могут изменяться, — такими как списки.

В следующей главе вы узнаете, что синтаксис операции доступа к элементам последовательности по смещениям (квадратные скобки) также применим для доступа к элементам словарей по ключам — операции выглядят одинаково, но имеют разную интерпретацию. Расширенная операция извлечения подстроки: третий предел В версии Рус)топ 2.3 в операцию извлечения подстроки была добавлена поддержка необязательного третьего индекса, используемого как шаг (иногда называется как шаг по индексу). Величина шага добавляется к индексу каждого извлекаемого элемента. Полная форма записи операции извлечения подстроки теперь выглядит так: Х[1:,): К]. Она означает: «Извлечь все элементы последовательности Х, начиная со смещения 1, вплоть до смещения З-1, с шагом К».

Третий предел, К, по умолчанию имеет значение 1, именно по этой причине в обычной ситуации извлекаются все элементы среза, слева направо. Однако, если явно указать значение третьего предела, его можно использовать, чтобы пропустить некоторые элементы или полностью изменить их порядок. Например, выражение Х[1: 1сп 2] вернет каждый второй элемент последовательности Х в диапазоне смещений от 1 до 9 — то есть будут выбраны элементы со смещениями 1, 3, 5, 7 и 9. Как правило, по умолчанию первый и второй пределы принимают значения О и длину последовательности соответственно, поэтому выражение Х[::2] вернет каждый второй элемент от начала и до конца последовательности: »> 8 = 'еЬссетзЬЦК1еооР' »> З[1.'10; 2) 'ость!' »> 3[.':2) 'асе0[кео' Строки в действии Можно также использовать отрицательное значение шага. Например, выражение "Пе11о" (::-1) вернет новую строку "о!1ео".

Здесь первые две границы получают значения по умолчанию — О и длина последовательности, а величина шага, равная -1, указывает, что срез должен быть выбран в обратном порядке — справа налево, а не слева направо. В результате получается переверн утал последовательность: »> 8 = нпе11о' >» 8(;.-11 'о1!ео' При использовании отрицательного шага порядок применения первых двух границ меняется на противоположный. Ч'о есть выражение 5(5: 1: -1] извлечет элемент со 2 по б в обратном порядке (результат будет содержать элементы последовательности со смещениями б, 4, 3 и 2): »> 8 = 'аэробус' »> 8(8:1:-11 'тоес Пропуск элементов и изменение порядка их следования — это наиболее типичные случаи использования операции получения среза с тремя пределами.

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

Инструменты преобразования строк Один из девизов языка РуФЬоп — не поддаватьея искушению предполагать, что имелось в виду. Например, Ру1Ьоп не позволит сложить строку и число, даже если строка выглядит как число (то есть содержит только цифры): »> "42" ь 1 турееггог саппот сопсатепате 'зтг' апо 'тпт' оо1еств (Туребггог, невозможно обьеднннть обьекты 'зтг' н ьпт') В соответствии с архитектурой языка оператор ь может означать и операцию сложения, и операцию конкатенации, вследствие чего выбор типа преобразования становится неочевидным. Поэтому интерпретатор воспринимает такую инструкцию как ошибочную. Вообще в языке Ру(Ьоп отвергается любая магия, которая может осложнить жизнь программиста.

Как же быть, если сценарий получает число в виде текстовой строки из файла или от пользовательского интерфейса2 В этом случае следует использовать инструменты преобразования, чтобы можно было интерпретировать строку как число или наоборот. Например: 196 Глава 7 Строки а Преобразование в/из строки »> 1пт("42"), втг(42) (42, '42') »> гврг(42), '42' ('42', '42') а Преобразование в строку, как если бы она била а программнмм кодом >» 8 = "42" »> 1 = 1 »> 8 + 1 турееггог: саппот сопсатепатв 'втг' апс '1пт' сь)естз »> 1пт(8) + 1 а Операция словения 43 »> 8 + втг(1) а Операция конкатенации '421 ' Придется держать в уме: срезы Повсюду в этой книге я буду включать аналогичные врезки с описанием наиболее типичных случаев использования рассматриваемых особенностей языка на практике.

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

Подробнее о различиях между функциями в(г и герт можно прочитать во врезке «Форматы представления герг и в(г«, в главе 5. Кроме того, функции 1пт и в( г изначально предназначены для выполнения преобразований. Вьт не сможете смешивать строковые и числовые типы в таких операторах, как «, но вы можете вручную выполнить необходимые преобразования операндов перед выполнением операции: Строки в действии 197 4 Е11е еспо.су 1арогт вув ргтпт вув.агрч % рутпоп вспо.ру -а -Ь -с ['ессо.ру', '-а', '-Ь', '-с'] Обычно вас будут интересовать только параметры, которые следуют за именем программы. Это приводит нас к типичному использованию операции получения среза (или, что то же самое, извлечения подстроки): мы можем с помощью единственной инструкции получить все элементы списка, за исключением первого.

В данном случае выражение вув, агру[1: ] вернет требуемый список ['-а', '-Ь', '-с']. После этого список можно обрабатывать по своему усмотрению, не заботясь о присутствии имени программы в начале. Кроме того, операция получения среза часто используетея для удаления лишних символов из строк, считываемых из файлов. Ксли известно, что строки всегда завершаются символом новой строки (символ тп), его можно удалить одним-единственным выражением — 11пе[: -1], которое возвращает все символы строки, кроме последнего (нижняя граница по умолчанию принимаетея равной 0). В обоих случаях операция извлечения подстроки обеспечивает логику выполнения, которую в низкоуровневых языках программирования пришлось бы реализовывать явно.

Обратите внимание: для удаления символа новой строки часто предпочтительнее использовать функцию 11пе гвтгтр, потому что она не повреждает строки, в которых отсутствует символ новой строки в конце, — типичный случай при создании текстовых файлов некоторыми текстовыми редакторами. Операция извлечения подстроки применима, только если вы полностью уверены, что строки завершаются корректным образом.

Существуют похожие встроенные функции для преобразования чисел с плавающей точкой в/из строки: »> втг(3.1415), (1оат("1.5") ('3.1415', 1.5) »> тахт "- "1.2345-10" »> т)оат(техт) 1. 2340000000000001в-010 Позднее мы познакомимся со встроенной функцией еча1 — она выполняет строку, содержащую программный код на языке Ру()топ, и потому может выполнять преобразование строки в объект любого вида.

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

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

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

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