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

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

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

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

Во всех упражнениях необходимо знание фундаментальных сведений, поэтому постарайтесь выполнитькак можно большую их часть.1. Основы. Поэкспериментируйте в интерактивной оболочке с наиболее частоиспользуемыми операциями, которые вы найдете в таблицах второй части. Для начала запустите интерактивный сеанс работы с интерпретаторомPython, введите все нижеследующие выражения и попробуйте объяснитьпроисходящее. Обратите внимание, что в некоторых строках точка с запятой используется как разделитель инструкций, что позволяет уместитьв одной строке несколько инструкций, например: в строке X=1;X выполняется присваивание значения переменной и последующий его вывод (подробнее о синтаксисе инструкций рассказывается в следующей части книги).Кроме того, запомните, что запятая между выражениями обычно означаетсоздание кортежа, даже в отсутствие круглых скобок: выражение X,Y,Z –это кортеж из трех элементов, который интерпретатор выведет, заключивв круглые скобки.2 ** 162 / 5, 2 / 5.0“spam” + “eggs”S = “ham”“eggs “ + SS * 5S[:0]“green %s and %s” % (“eggs”, S)‘green {0} and {1}’.format(‘eggs’, S)(‘x’,)[0](‘x’, ‘y’)[1]318Глава 9.

Кортежи, файлы и все остальноеL = [1,2,3] + [4,5,6]L, L[:], L[:0], L[-2], L[-2:]([1,2,3] + [4,5,6])[2:4][L[2], L[3]]L.reverse( ); LL.sort( ); LL.index(4){‘a’:1, ‘b’:2}[‘b’]D = {‘x’:1, ‘y’:2, ‘z’:3}D[‘w’] = 0D[‘x’] + D[‘w’]D[(1,2,3)] = 4list(D.keys()), list(D.values()), (1,2,3) in D[[]], [“”,[],( ),{},None]2. Индексирование и извлечение среза. В интерактивной оболочке создайтесписок с именем L, который содержит четыре строки или числа (например,L = [0,1,2,3]). Затем исследуйте следующие случаи – они могут никогда невстретиться вам на практике, но они заставят вас задуматься об основахреализации, что может оказаться полезным в практических ситуациях:•• Что произойдет, если попытаться получить доступ к элементу, индекскоторого выходит за пределы списка (например, L[4])?•• Что произойдет, если попытаться извлечь срез, выходящий за пределысписка (например, L[-1000:100])?•• Наконец, как отреагирует интерпретатор на попытку извлечь последовательность в обратном порядке, когда нижняя граница больше верхней(например, L[3:1])? Подсказка: попробуйте выполнить операцию присваивания такому срезу (L[3:1] = [‘?’]) и посмотреть, куда будет помещенозначение.

Как вы думаете, это то же самое явление, что и при попыткеизвлечь срез, выходящий за пределы списка?3. Индексирование, извлечение среза и инструкция del. Создайте другой список L с четырьмя элементами и присвойте одному из элементов пустой список (например, L[2] = []). Что произошло? Затем присвойте пустой списоксрезу (L[2:3] = []). Что случилось на этот раз? Не забывайте, что операцияприсваивания срезу сначала удаляет срез, а затем вставляет новое значениев заданную позицию.Инструкция del удаляет элемент с указанным смещением, ключом, атрибутом или именем.

Используйте ее для удаления элемента вашего списка (например, del L[0]). Что произойдет, если попробовать удалить целый срез (delL[1:])? Что произойдет, если срезу присвоить объект, который не являетсяпоследовательностью (L[1:2] = 1)?4. Кортежи. Введите следующие строки:>>> X = ‘spam’>>> Y = ‘eggs’>>> X, Y = Y, XКак вы думаете, что произойдет с переменными X и Y после выполнения этойпоследовательности действий?Закрепление пройденного3195. Ключи словарей. Рассмотрите следующий фрагмент:>>> D = {}>>> D[1] = ‘a’>>> D[2] = ‘b’Вы знаете, что словари не поддерживают доступ к элементам по смещениям; попробуйте объяснить происходящее здесь. Может быть, следующийпример прояснит ситуацию? (Подсказка: к какой категории типов относятся строки, целые числа и кортежи?)>>> D[(1, 2, 3)] = ‘c’>>> D{1: ‘a’, 2: ‘b’, (1, 2, 3): ‘c’}6.

Индексирование словарей. Создайте словарь с именем D и с тремя записямидля ключей ‘a’, ‘b’ и ‘c’. Что произойдет, если попытаться обратиться к элементу с несуществующим ключом (D{‘d’})? Что сделает интерпретатор, еслипопробовать присвоить значение несуществующему ключу (D[‘d’] = ‘spam’)?Как это согласуется с операциями доступа и присваивания элементам списков при использовании индексов, выходящих за их пределы? Не напоминает ли вам такое поведение правила, применяемые к переменным?7. Общие операции. Получите в интерактивной оболочке ответы на следующие вопросы:•• Что произойдет, если попытаться использовать оператор + с операндамиразличных типов (например, строка+список, список+кортеж)?•• Будет ли работать оператор +, когда один из операндов является словарем?•• Будет ли работать метод append со списками и со строками? Можно ли использовать метод keys со списками? (Подсказка: что предполагает методappend о заданном объекте?)•• Наконец, какой тип объекта будет получен, когда операция конкатенации применяется к двум спискам или двум строкам?8.

Индексирование строк. Определите строку S из четырех символов: S =“spam”. Затем введите следующее выражение: S[0][0][0][0][0]. Можете ли выобъяснить, что произошло на этот раз? (Подсказка: не забывайте, строки –это коллекции символов, а символы в языке Python представлены односимвольными строками.) Будет ли это выражение работать, если применить егок списку, такому как [‘s’, ‘p’, ‘a’, ‘m’]? Почему?9.

Неизменяемые типы. Определите еще раз строку S из четырех символов:S = “spam”. Напишите операцию присваивания, которая изменила бы строку на “slam”, используя только операции извлечения среза и конкатенации.Возможно ли выполнить то же самое действие с использованием операцийиндексирования и конкатенации? С помощью присваивания по индексуэлемента?10. Вложенные структуры. Создайте структуру данных для представлениявашей личной информации: имя (имя, фамилия, отчество), возраст, должность, адрес, электронный адрес и номер телефона.

При построении структуры вы можете использовать любые комбинации встроенных объектов320Глава 9. Кортежи, файлы и все остальное(списки, кортежи, словари, строки, числа). Затем попробуйте обратиться к отдельным элементам структуры по индексам. Являются ли какиенибудь объекты более предпочтительными для данной структуры?11. Файлы. Напишите сценарий, который создает и открывает для записи новый файл с именем myfile.txt и записывает в него строку “Hello file world!”.Затем напишите другой сценарий, который открывает файл myfile.txt,читает и выводит на экран его содержимое. Запустите поочередно эти сценарии из командной строки.

Появился ли новый файл в каталоге, откудабыли запущены сценарии? Что произойдет, если указать другой каталогв имени файла, которое передается функции open? Примечание: методы записи в файлы не добавляют символ новой строки к записываемым строкам.Добавьте символ \n явно в конец вашей строки, если хотите получить в файле полностью завершенную строку.Часть III.Инструкции и синтаксисГлава 10.Введение в инструкции языка PythonТеперь, когда вы познакомились с базовыми встроенными типами объектовязыка Python, мы начинаем исследование фундаментальных форм инструкций.

Как и в предыдущей части книги, мы начнем с общего представления синтаксиса инструкций и затем, в нескольких следующих главах, более подробнорассмотрим конкретные инструкции.Выражаясь простым языком, инструкции – это то, что вы пишете, чтобы сообщить интерпретатору, какие действия должна выполнять ваша программа.Если программа «выполняет какие-то действия», то инструкции – это способуказать, какие именно действия должна выполнять программа. Python – этопроцедурный язык программирования, основанный на использовании инструкций; комбинируя инструкции, вы задаете процедуру, которую выполняет интерпретатор в соответствии с целями программы.Структура программы на языке PythonДругой способ понять роль инструкций состоит в том, чтобы вновь вернуться к иерархии понятий, представленной в главе 4, в которой рассказывалосьо встроенных объектах и выражениях, управляющих ими.

Эта глава рассматривает следующую ступень иерархии:1. Программы делятся на модули.2. Модули содержат инструкции.3. Инструкции состоят из выражений.4. Выражения создают и обрабатывают объекты.Синтаксис языка Python по сути построен на инструкциях и выражениях. Выражения обрабатывают объекты и встраиваются в инструкции.

Инструкциипредставляют собой более крупные логические блоки программы – они напрямую используют выражения для обработки объектов, которые мы рассматривали в предыдущих главах. Кроме того, инструкции – это место, где создаютсяобъекты (например, в инструкциях присваивания), а в некоторых инструкциях создаются совершенно новые виды объектов (функции, классы и так далее).324Глава 10. Введение в инструкции языка PythonИнструкции всегда присутствуют в модулях, которые сами управляются инструкциями.Инструкции в языке PythonВ табл. 10.1 приводится набор инструкций языка Python. В этой части книгирассматриваются инструкции, которые в таблице расположены от начала и доинструкций break и continue. Ранее неофициально вам уже были представленынекоторые из инструкций, присутствующих в табл. 10.1.

В этой части книгибудут описаны подробности, опущенные ранее; вашему вниманию будут представлены остальные процедурные инструкции языка Python, а также будетрассмотрена общая синтаксическая модель. Инструкции, расположенныев табл. 10.1 ниже, имеют отношение к крупным блокам программы – функциям, классам, модулям и исключениям, и заключают в себе крупные понятияпрограммирования, поэтому каждой из них будет посвящен отдельный раздел.Более экзотические инструкции, такие как del (которая удаляет различныекомпоненты), раскрываются далее в книге или в стандартной документациипо языку Python.Таблица 10.1.

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

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

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

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