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

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

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

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

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

Различия между ними станут более понятны, когда мы приступим к изучению классов, а пока, если что-то выглядит непонятным, попробуйте вывести тот же результат с помощью инструкции ргшт. Помимо выражений для выполнения операций с числами в составе Ру- 1)топ есть несколько полезных модулей: »> 1арогт вата »> вата.Р1 3 1415926535897931 »> вата.аагт(85) 9.2195444572928871 Модуль вать содержит более сложные математические функции, а модуль галсов реализует генератор случайных чисел и функцию случайного выбора (в данном случае из списка, о котором будет рассказываться ниже, в этой же главе): »> 1арогт гапзов »> галсов.

гапзоа( ) 0.59268735266273953 »> галсов.оао1оа((1, 2, 3, 4)) 1 Кроме того, Ру(Поп включает в себя более экзотические числовые объекты, такие как комплексные числа, числа с фиксированной десятичной точкой и множества, а среди свободно распространяемых расширений можно найти и другие числовые типы (например, матрицы и векторы). Обсуждение этих типов будет приводиться далее в этой книге. Пока что мы использовали Ру()гоп как простой калькулятор, но чтобы иметь большую возможность судить о встроенных типах, перейдем к строкам. Строки Строки используются для записи текстовой информации, а также произвольных последовательностей байтов. Это наш первый пример последовательностей, или упорядоченных коллекций других объектов по их позиции.

в языке Ру1йоп. Последовательности поддерживают порядок размещения элементов, которые они содержат, слева направо: элементы сохраняются и извлекаются, исходя из их позиции в последовательности. Строго говоря, строки являются последовательностями односимвольных строк. Другими типами последовательностей являются списки и кортежи (будут описаны ниже). Операции над последовательностями Будучи последовательностями, строки поддерживают операции, предполагающие определенный порядок позиционирования элементов.

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

д. В языке Ру(]топ предусмотрена возможность индекса- ции в обратном порядке, от конца: >» 8[-1] »> 8[-2] 'а' № Последний элемент в конце В № Второй элеиент с конца Формально отрицательные индексы просто складываются с длиной строки, поэтому следующие две операции эквивалентны [хотя первая проще записывается и более понятна, чем вторая): № Последний элеиент в 8 »> 8[-1] »> 8[1еп(3)-1) И Примечательно, что внутри квадратных скобок допускается использовать не только жестко заданные числовые литералы, но и любые другие выражения — везде, где Руь]топ ожидает получить значение, можно использовать литералы, переменные или любые выражения.

Весь синтаксис языка Ру$]топ следует этому общему принципу. В дополнение к простой возможности индексирования по номеру позиции последовательности поддерживают более общую форму индексирования, известную как получение среза [в[(с]пЯ, которая обеспечивает возможность извлечения за одну операцию целого раздела [среза). >» 3 'Зраи' »> 3[1:3] 'ра' Проще всего можно представить себе срез как способ извлечения целого столбца из строки за один шаг. В общем виде синтаксис операции получения среза выглядит как Х[1: О] и означает: яизвлечь из Х все, считая со смещения 1 и до смещения б, но не включая его ь. В качестве результата возвращается новый объект. Например, последняя операция из примера выше вернет все символы строки Я со смещениями с 1 по 2 »> 8 = 'Зраа' »> 1еп(8) 4 >» 3[01 '8' »> 3[1] р № длина № Первий элеиент в 5, счет начинается с позиции О № Отрицательная индексация, более слоиний способ № Строка из 4 сииволов № Срез строки 5 на~иная со сиеаения т и до 2 (не 3) (то есть 3-1 штук) в виде новой строки.

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

Как мы узнаем позднее, нет смысла копировать строки таким способом, но такая форма копирования очень удобна при работе с другими последовательностями, такими как списки. Наконец, будучи последовательностями, строки поддерживают операцию конкатенации, которая записывается в виде знака плюс (объединение двух строк в одну строку), и операцию повторения (новая строка создается за счет многократного повторения другой строки): »> 8 'Брав' »> 8 + 'хуа' Ф Конкатенация 'Браихуз' »> Б Л Б остается без изменений 'Брам' »> 8 ° 8 Л Повторение 'БраиБраазрааБращзращзраазращБраа' Обратите внимание, что знак плюс (+) имеет различное значение для разных объектов: для чисел — сложение, а для строк — конкатенация.

Это универсальное свойство языка РуФ)топ, которое далее в книге будет названо полиморфизмом, означает, что фактически выполняемая операция зависит от объектов, которые принимают в ней участие. Как будет показано, когда мы приступим к изучению динамической типизации, такой полиморфизм в значительной степени обеспечивает выразительность и гибкость программного кода на языке РуФЬоп. Поскольку отсутствуют ограничения, связанные с типами, операции в языке РуФ)топ обычно в состоянии автоматически обрабатывать объекты самых разных типов, при условии, что они поддерживают совместимый »> 8[1: ) 'ращ' »> Б 'Брав' »> 8(0:3) 'Бра' »> 8(:3) 'Бра' »> 8(:-1) Бра' »> 8(',) 'Брав' Глава 4.

Введение а типы объектов языка Ру1)>оп Л Все, кроне первого элеиентв (1:!еп($)) з Сама строка Б беэ изменений Л Все, кроне посяеднего элеиента в то же, что и Б(О:Э) л еще рвз все, кроме последнего элемента, но проще (О: — 1) Л Все содержимое Э, квк обычная копия (О.)еп(Б)) 119 Строки интерфейс (как в данном случае операция +). В языке Рус)соп идея полиморфизма является ключевой концепцией, которую мы будем рассматривать далее в этой книге. Неизменяемость Обратите внимание: в предыдущих примерах ни одна из использованных операций не изменяла оригинальную строку. Все операции над строками в результате создают новую строку, потому что строки в языке Ру()соп являются неизменяемыми — после того, как строка будет создана, ее нельзя изменить.

Например, вы не сможете изменить строку присвоением значения одной из ее позиций, но вы всегда можете создать новую строку и присвоить ей то же самое имя. Поскольку Ру$Ьоп очищает память, занятую не нужными больше объектами (как будет показано позднее), такой подход не так уж неэффективен, как могло бы показаться на первый взгляд: »> 8 '8ращ' »> 8[0) = 'а' № Неизиеняеиие обьекти неяьзя изиенить ..текст сообщения об ошибке опущен... турееггог, асг' оь1есс ооеа пос арррогс тсещ ааасрпщепс »>8= пи+8[1:) № Но с поиощью виракений ии иокеи № созоавать новие обьекти »> 8 'тращ' Все объекты в языке РуС)соп либо относятся к классу неизменяемых, либо нет. Если говорить о базовых типах, то числа, строки и кортежи являются неизменяемыми, а списки и словари — нет (они легко могут изменяться в любой своей части). Помимо всего, неизменяемость может рассматриваться как гарантия, что некоторый объект будет оставаться постоянным на протяжении работы программы.

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

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

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

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