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

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

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

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

В данную версию сценариятакже было добавлено сообщение, которое выводится в момент завершенияработы сценария. Поскольку инструкция print в последней строке не имеет такого же отступа, как инструкции вложенного блока, она не считается частьютела цикла и будет выполняться только один раз – после выхода из цикла:Enter text:24Короткий пример: интерактивные циклы337Enter text:401600Enter text:stopByeНебольшое примечание: я предполагаю, что этот фрагмент был сохраненв файле сценария и запускается из него.

Если вы вводите этот программныйкод в интерактивном сеансе, не забудьте добавить пустую строку (то есть нажать клавишу Enter дважды) перед заключительной инструкцией print, чтобызавершить тело цикла. Впрочем, нет никакого смысла вводить последнюю инструкцию print в интерактивном сеансе (вы будете вводить ее уже после того,как завершите ввод чисел в цикле!).Обработка ошибок проверкой вводаПока все идет хорошо, но посмотрите, что произойдет, если пользователь введет неверную строку:Enter text:xxx...текст сообщения об ошибке опущен...ValueError: invalid literal for int() with base 10: ‘xxx’Встроенная функция int возбуждает исключение, когда сталкивается с ошибкой. Если нам необходимо обеспечить устойчивость сценария, мы должныпредварительно проверить содержимое строки с помощью строкового методаisdigit:>>> S = ‘123’>>> T = ‘xxx’>>> S.isdigit(), T.isdigit()(True, False)Для этого в наш пример необходимо добавить вложенные операторы.

В следующей версии нашего интерактивного сценария используется полная версияусловной инструкции if, с помощью которой предотвращается возможностьпоявления исключений:while True:reply = input(‘Enter text:’)if reply == ‘stop’:breakelif not reply.isdigit( ):print(‘Bad!’ * 8)else:print(int(reply) ** 2)print ‘Bye’Более подробно мы будем рассматривать инструкцию if в главе 12. Это оченьпростой инструмент программирования логики выполнения сценария. В своейполной форме инструкция содержит слово if, за которым следуют выражениепроверки условия и вложенный блок кода, один или более необязательныхпроверок elif (“else if”) и соответствующих им вложенных блоков кода и не­обязательная часть else со связанным с ней блоком кода, который выполняетсяпри несоблюдении условия.

Интерпретатор выполняет первый блок кода, длякоторого проверка дает в результате истину, проходя инструкцию сверху вниз,либо часть else, если все проверки дали в результате ложь.338Глава 10. Введение в инструкции языка PythonЧасти if, elif и else в предыдущем примере принадлежат одной и той же инструкции, так как вертикально они расположены на одной линии (то есть имеют одинаковые отступы).

Инструкция if простирается до начала инструкцииprint в последней строке. В свою очередь, весь блок инструкции if являетсячастью цикла while, потому что вся она смещена вправо относительно основнойинструкции цикла. Вложение инструкций станет для вас естественным, кактолько вы приобретете соответствующие навыки.Теперь новый сценарий будет обнаруживать ошибки прежде, чем они будут обнаружены интерпретатором, и выводить (возможно, глупое) сообщение:Enter text:525Enter text:xyzBad!Bad!Bad!Bad!Bad!Bad!Bad!Bad!Enter text:10100Enter text:stopОбработка ошибок с помощью инструкции tryПредыдущее решение работает, но, как будет показано далее в книге, в языке Python существует более универсальный способ, который состоит в том,чтобы перехватывать и обрабатывать ошибки с помощью инструкции try.

Этаинструкция подробно будет рассматриваться в последней части книги, но, использовав инструкцию try в качестве предварительного знакомства, мы можемупростить программный код предыдущей версии сценария:while True:reply = input(‘Enter text:’)if reply == ‘stop’: breaktry:num = int(reply)except:print(‘Bad!’ * 8)else:print(int(reply) ** 2)print ‘Bye’Эта версия работает точно так же, как и предыдущая, только здесь мы заменили явную проверку наличия ошибки программным кодом, который предполагает, что преобразование будет выполнено и выполняет обработку исключения,если такое преобразование невозможно.

Эта инструкция try состоит из словаtry, вслед за которым следует основной блок кода (действие, которые мы пытаемся выполнить), с последующей частью except, где располагается программный код обработки исключения. Далее следует часть else, программный кодкоторой выполняется, если в части try исключение не возникло. Интерпретатор сначала выполняет часть try, затем выполняет либо часть except (если возникло исключение), либо часть else (если исключение не возникло).В терминах вложенности инструкций, так как слова try, except и else имеютодинаковые отступы, все они считаются частью одной и той же инструкцииtry.

Обратите внимание, что в данном случае часть else связана с инструкциейtry, а не с условной инструкцией if. Как будет показано далее в книге, ключе-Короткий пример: интерактивные циклы339вое слово else в языке Python может появляться не только в инструкции if,но и в инструкции try и в циклах – величина отступа наглядно показывает,частью какой инструкции оно является. В данном случае инструкция try начинается со слова try и продолжается до конца вложенного блока кода, следующего за словом else, потому что else располагается на том же расстоянииот левого края, что и try. Инструкция if в этом примере занимает всего однустроку и завершается сразу же за словом break.Напомню, что к инструкции try мы еще вернемся далее в этой книге.

А покавам достаточно будет знать, что эта инструкция может использоваться дляперехвата любых ошибок, уменьшения объема программного кода, проверяющего наличие ошибок, и представляет собой достаточно универсальный подход к обработке необычных ситуаций. Если бы нам, к примеру, потребовалосьобеспечить поддержку ввода не целых, а вещественных чисел, использованиеинструкции try существенно упростило бы реализацию по сравнению с проверкой – нам достаточно было бы просто вызвать функцию float и перехватитьисключение вместо того, чтобы пытаться анализировать все возможные способы записи вещественных чисел.Три уровня вложенности программного кодаТеперь рассмотрим последнюю версию сценария.

В случае необходимости мымогли бы создать еще один уровень вложенности, например, чтобы выполнитьпроверку правильности ввода, основываясь на величине введенного числа:while True:reply = input(‘Enter text:’)if reply == ‘stop’:breakelif not reply.isdigit():print(‘Bad!’ * 8)else:num = int(reply)if num < 20:print(‘low’)else:print(num ** 2)print(‘Bye’)В эту версию сценария добавлена еще одна инструкция if, вложенная в выражение else другой условной инструкции if, которая в свою очередь вложенав цикл while. Когда код выполняется по некоторому условию или в цикле, какв данном случае, достаточно просто выполнить дополнительный отступ вправо. В результате сценарий работает так же, как и предыдущая версия, но длячисел меньше 20 выводит слово «low» (низкое значение):Enter text:19lowEnter text:20400Enter text:spamBad!Bad!Bad!Bad!Bad!Bad!Bad!Bad!Enter text:stopBye340Глава 10.

Введение в инструкции языка PythonВ заключениеВ этой главе мы коротко познакомились с синтаксисом инструкций языка Py���thon. Здесь были представлены основные правила записи инструкций и блоковпрограммного кода. Как было сказано, в языке Python обычно в каждой строкепрограммы располагается единственная инструкция и все инструкции в одноми том же блоке имеют одинаковые отступы (отступы являются частью синтаксиса языка Python). Кроме того, мы рассмотрели несколько исключений изэтих правил, включая многострочные инструкции, однострочные условныеинструкции и циклы. Наконец мы воплотили эти идеи в интерактивный сценарий, в котором продемонстрировали ряд полезных инструкций, а также рассмотрели синтаксис инструкций в действии.В следующей главе мы приступим к глубокому изучению основных процедурных инструкций языка �����������������������������������������������������Python�����������������������������������������������.

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

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

Конец строки является концом инструкции, расположенной в этой строке.Если в одной строке располагается несколько инструкций, они должны завершаться точками с запятой. Если инструкция располагается в нескольких строках, она должна завершаться закрывающей скобкой.3. Все инструкции во вложенном блоке имеют одинаковые отступы, состоящие из одинакового числа символов пробела или табуляции.4. Инструкция может располагаться в нескольких строках, если заключитьее в пару круглых, квадратных или фигурных скобок. Инструкция закан-Закрепление пройденного341чивается в строке, где интерпретатор Python встречает закрывающую парную скобку.5. Тело составной инструкции может располагаться в той же строке, чтои основная инструкция, сразу после символа двоеточия, но при условии,что тело не содержит других составных инструкций.6. Только когда возникает потребность разместить несколько инструкцийв одной строке, при условии, что ни одна из инструкций не является составной.

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

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

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

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