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

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

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

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

Существуют и другие способы записи такого цикла, но данная форма очень часто встречается в программном коде на языке Ру1ьоп. Обратите внимание, что все три строки, вложенные в инструкцию цикла нл11е, имеют одинаковые отступы, благодаря этому они визуально образуют вертикальную линию блока программного кода, ассоциированного с инструкцией цикла ив т1е. тело цикла завершается либо с концом файла, либо с первой инструкцией, имеющей меньший отступ. Запустив этот фрагмент, мы получили следующий порядок взаимодействий с ним: Ептег техт:арак ЯРАМ Ептег техт;42 42 ептег техт;втов Математическая обработка данных пользователя Итак, наш сценарий работает, а теперь предположим, что вместо преобразования символов текстовой строки в верхний регистр нам необходимо выполнить некоторые математические действия над введенными 286 Глава 10. Введение в инструкции языка Ру(Поп пользователем числами, — например, вычислить квадраты чисел, что может получиться не совсем так, как ожидают наиболее молодые и нетерпеливые пользователи.

Для достижения желаемого эффекта мы могли бы попробовать использовать следующие инструкции: »> гер1у '20' »> гер1у ° * 2 ... текст сообеення об ошибке опуаен... туреЕггог; ипворрогсео орегапо суре(в) гог ° * ог рон(): 'всг' апо 'спс' (Перевод: ТуреЕггог; неподдерхиваемые типы операндов дпя ° ипи рош();'вгг' и 'спС') Это не работает, потому что (как обсуждалось в предыдущей части книги) интерпретатор выполняет преобразование типов объектов в выражениях, только если они являются числами, а ввод пользователя всегда передается сценарию в виде строки.

Мы не можем возвести строку цифр в степень, не преобразовав ее в целое число вручную: »> Спт(гер1у) ° ° 2 400 Вооружившись этой информацией, мы можем переделать наш цикл для выполнения математических действий: мяс1е Тгпе. гер1у = ган спрос('епсег сехс;') ст гер1у == 'асор'; Ьгеах рыпг спС(гер1у) ** 2 ргспС 'Вуе В этом сценарии используется однострочная инструкция су, которая, как и прежде, производит выход из цикла по получении от пользователя строки "вСор", а кроме того, выполняется преобразование введенной строки для выполнения необходимой математической операции.

В данную версию сценария также было добавлено сообщение, которое выводится в момент завершения работы сценария. Поскольку инструкция рг1пС в последней строке не имеет такого отступа, как инструкции вложенного блока, она не считается частью тела цикла н будет выполняться только один раз — после выхода из цикла: Епгег техт:2 4 Ептег Сехг:40 1600 Ептег Сехг;втор Вуе Обработка ошибок проверкой ввода Пока все идет хорошо, но посмотрите, что произойдет, если пользователь введет неверную строку: Епсег секс;ххх Короткий пример: интерактивные циклы 287 текст сообшенил об ошибке опушен .. На1оеЕггог: !пуа1тб 1!тега1 тог !пт() нттЬ раве !О: 'ххх' (Перевод; На!оеЕггог: неверный литерал дпп тп(() по основанию 1О, 'ххх') Встроенная функция !ПТ возбуждает исключение, когда сталкивается с ошибкой. Если нам необходимо обеспечить устойчивость сценария, мы должны предварительно проверить содержимое строки с помощью строкового метода ! 801011: »> 8 = '123' »> Т = 'ххх' »> 8.!ее!0!1(), Т.!во!0!т() (Тгие, Еа1ве) Для этого в наш пример необходимо добавить вложенные операторы.

В следующей версии нашего интерактивного сценария используется полная версия условного оператора ! Т, с помощью которого предотвращается возможность появления исключений: нп!1е Тгое. гер1у = ган горо!('ептег техт:') !т гер1у == 'втор' Ьгеак е1тт пот гер1у,шбтд11( ). ргтпт 'Ваб'' 8 е1ве. ргтпт шт(гер1у) .* 2 ргтпт 'Вуе' Более подробно мы будем рассматривать инструкцию 1Е в главе 12. Это очень простой инструмент программирования логики выполнения сценария.

В своей полной форме инструкция содержит слово ! Т, за которым следуют выражение проверки условия и вложенный блок кода, одну или более необязательных проверок е11Т ('"е1ве Ы") и соответствующих им вложенных блоков кода и необязательная часть е1ве со связанным с ней блоком кода, который выполняется при несоблюдении условия.

Интерпретатор выполняет первый блок кода, для которого проверка дает в результате истину, проходя инструкцию сверху вниз, либо часть е1ве, если все проверки дали в результате ложь. Части 1Т, е11Е и е1ве в предыдущем примере принадлежат одной и той же инструкции, так как вертикально они расположены на одной линии (т. е.

имеют одинаковые отступы). Инструкция 1Е простирается до начала инструкции рг!пт в последней строке. В свою очередь весь блок инструкции тр является частью цикла нп!1е, потому что вся она смещена вправо относительно основной инструкции цикла. Вложение инструкций станет для вас естественным, как только вы приобретете соответствующие навыки.

Теперь новый сценарий будет обнаруживать ошибки прежде, чем они будут обнаружены интерпретатором, и выводить (возможно, глупое) сообщение: 288 Глава 10. Введение в инструкции языка Рут)100 Ептаг СахС 5 25 Ептаг Сект:хуа Вас'Вап'Вас,'Вари Вав!Вас!Вас.'Вавн епсаг сехс:10 100 епсег сехс;асср Обработка ошибок с помощью инструкции тгу Предыдущее решение работает, но, как будет показано далее в книге, в языке Ру(Поп существует более универсальный способ, который состоит в том, чтобы перехватывать и обрабатывать ошибок с помощью инструкции с г у. Эта инструкция подробно будет рассматриваться в последней части книги, но, использовав инструкцию С гу в качестве предварительного знакомства, мы можем упростить программный код предыдущей версии сценария: пы1е Тгпа гер1у = гам !прас('Епсаг сехс:') сг гер1у == 'асср': пгеах сгу.

ппя = спс(гер1у) ехсерс: рг!пс 'Вави ' * 8 е1ае: ргспт спт(гер1у) * 2 рг!пт 'Вуа' Эта версия работает точно так же, как и предыдущая, только здесь мы заменили явную проверку наличия ошибки программным кодом, который предполагает, что преобразование будет выполнено, и выполняет обработку исключения, если такое преобразование невозможно. Эта инструкция Сгу состоит из слова Сгу, вслед за которым следует основной блок кода (действие, которые мы пытаемся выполнить), с последующей частью ехсерс, где располагается программный код обработки исключения. Далее следует часть е18е, программный код которой выполняется, если в части Сгу исключение не возникло. Интерпретатор сначала выполняет часть сгу, затем выполняет либо часть ехсерс (если возникло исключение), либо часть е1ае (если исключение не возникло). В терминах вложенности инструкций, так как слова Сгу, ехсерС и е18е имеют одинаковые отступы, все они считаются частью одной и той же инструкции Сгу.

Обратите внимание, что в данном случае часть е18е связана с инструкцией С гу, а не с условной инструкцией с(. Как будет показано далее в книге, ключевое слово е1ае в языке Ру1Ьоп может появляться не только в инструкции 1(, но и в инструкции С гу и в циклах— величина отступа наглядно показывает, частью какой инструкции оно является. 2ай В заключение Напомню, что к инструкции С гу мы еще вернемся далее в этой книге. А пока вам достаточно будет знать, что эта инструкция может использоваться для перехвата любых ошибок, уменьшения объема программного кода, проверяющего наличие ошибок, и представляет собой достаточно универсальный подход к обработке необычных ситуаций.

Три уровня вложенности программного кода Теперь рассмотрим последнюю версию сценария. В случае необходимости мы могли бы создать еще один уровень вложенности, например, чтобы выполнить проверку правильности ввода, основываясь на величине введенного числа: нос1е Сгое гер1У = ган спросс'Епсег сехс ') Сг гвр1У == 'Ведар'; огеак е)сс поС гер1у.свасрсС( ): ргспС 'Вав'' * В е1ве; пов = ьпС(гер1у) су пов < 20: рппС '1он' е1ве: ргспС пов * 2 ргспС Вуе В зту версию сценария добавлена еще одна инструкция И, вложенная в выражение е1ве другой условной инструкции 1г, которая в свою очередь вложена в цикл ил11е. Когда код выполняется по некоторому условию или в цикле, как в данном случае, достаточно просто выполнить дополнительный отступ вправо. В результате сценарий работает так же, как и предыдущая версия, но для чисел меньше 20 выводит слово «1оуу» (низкое значение): Епсег сехс;19 1он Епсег сехс;20 400 ЕпСег Сехг:ВРав Вав!Вав!Вав'Вав!Вав!Вав)'Вав'Вав' Епсег сехс вТор Вуе В заключение В этой главе мы коротко познакомились с синтаксисом инструкций языка Рув)соп.

Здесь были представлены основные правила записи инструкций и блоков программного кода. Как было сказано, в языке Рув)соп обычно в каждой строке программы располагается единственная 290 Глава 10. Введение в инструкции языка Ру11тол инструкция и все инструкции в одном и том же блоке имеют одинаковые отступы (отступы являются частью синтаксиса языка Ру1Ьоп). Кроме того, мы рассмотрели несколько исключений из этих правил, включая многострочные инструкции, однострочные условные инструкции и циклы, а также рассмотрели синтаксис инструкций в действии. В следующей главе мы приступим к глубокому изучению основных процедурных инструкций языка РуФЬоп.

Как будет показано далее, все инструкции следуют тем же основным правилам, которые были представлены здесь. Закрепление пройденного Контрольные вопросы 1. Какие три синтаксических элемента, обязательные в языках, подобных языку С, опущены в языке РуФЬоп? 2. Каким образом обычно завершаются инструкции в языке РуФЬоп? 3. Как обычно определяется принадлежность инструкций к вложенному блоку в языке Ру$Ьоп? 4.

Как можно разместить одну инструкцию в нескольких строках? 5. Как можно разместить составную инструкцию в одной строке? 6. Существуют ли какие-либо объективные причины для завершения инструкций точкой с запятой7 7. Для чего предназначена инструкция с гу? 8. Какую наиболее распространенную ошибку допускают начинающие программисты на языке РуФЬоп? Ответы 1.

Обязательными синтаксическими элементами в С-подобных языках программирования являются круглые скобки, окружающие выражения проверки условий в некоторых инструкциях, точка с запятой, завершающая каждую инструкцию, и фигурные скобки, окружающие вложенные блоки программного кода. 2. Конец строки является концом инструкции, расположенной в этой строке. Если в одной строке располагается несколько инструкций, они должны завершаться точками с запятой.

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

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

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

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