Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 9

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

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

Переменная иашаЫе поочередно указывает на каждый объект в объекте тгегаЫе. В качестве тгегаЫе может использоваться любой тип данных, допускающий выполнение итераций по нему, включая строки (где итерации выполняются по символам строки), списки, кортежи и другие типы коллекций языка РуФ]топ. гпг соиптгу 1п ["0епаагк", "етп!апс", "ног»ау", "Яыааеп"]: ргтпт(соишгу) Здесь мы использовали весьма упрощенный подход к выводу списка стран. На практике то же самое обычно делается с помощью переменных: спиптгтеа = ["0епаагк", "етп!апа", евогнау", "ънепеп"] Гог сииптгу тп соиптгтеа: рг1пт(сииптгу) На самом деле весь список (или кортеж) можно вывести Генераторы единственным вызовом функции рг1пт(), напРимеР списков, ргтпт(соиптгтеа), но часто предпочтительнее выводить стр.т42 содержимое коллекций в цикле Гог (или в генераторах списков, о которых будет рассказываться позже), чтобы иметь полный контроль над форматированием.

44 Глава 1. Быстрое введение в процедурное программирование Сот 1ассег сп "АВСОЕРВН!акснаОРОВВТОунхуЕ": сг 1еттег Сп "АЕ100": ргспс(1ессег, "са а хона1") е1ае: рыпт( 1еттег, "са а оопаопапт") В первой строке этого фрагмента мы использовали ключевое слово Сп, как часть инструкции Сог, и переменную 1еССег, последовательно принимающую значения "А", "В" и так далее до "2" на каждом проходе цикла. Во второй строке мы снова использовали ключевое слово Сп„но на этот раз в качестве оператора проверки членства, Обратите также внимание на то, что в этом примере присутствуют вложенные блоки кода.

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

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

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

В случае исключения и если указана часть аа оагсаЬ)е, внутри блока обработки исключения переменная оагсаО)е будет ссылаться на объект исключения. «Золотой запаса Ру()поп Если исключение возникнет в блоке ехсер1 или для возникшего исключения не будет обнаружено соответствующего предложения ехсерт, то РуФЬоп начнет поиск блока ехсерт в следующем объемлющем контексте. Поиск подходящего обработчика исключения будет выполняться в направлении наружу и вверх по стеку вызовов, пока не будет найдено соответствие.

Если соответствия найдено не будет, то программа будет аварийно завершена с выводом сообщения об ошибке. В случае появления необработанного исключения интерпретатор Ру1Ьоп выводит диагностическую информацию и текст сообщения. Например: в = 1прж("ептег ап тптедег: ") тгу: 1 = 1пт(В) ргтпт("ча!тс (птедег ептегес:", т) ехсерт уа!ыеЕггог ав егг: рг1пт(егг) Если пользователь введет 3. 5, будет выведено сообщение: шча!то !!таге! (ог 1пт() итти паве 10: '3.5' (неверный литерал типа тпт() по основанию 10; '3.5') Но если он введет 13, вывод будет иной: ча!1О ппедег ептегес; 13 В многих книгах считается, что обработка исключений — это тема повышенной сложности, и ее рассмотрение откладывается как можно дальше. Но возбуждение и особенно обработка исключений — это фундаментальный способ работы Ру1Ьоп. поэтому мы затронули этот вопрос в самом начале.

И, как будет показано позже, обработчики исключений могут сделать программный код более удобочитаемым, отделяя «исключительные» случаи от обработки, которая для нас представляет наибольший интерес. Составляющая й«6: арифметические операторы Язык РуФЬоп предоставляет полный комплект арифметических операторов, включая двухместные операторы, выполняющие четыре основных арифметических действия: + (сложение), — (вычитание), * (умножение) и гг (деление). Кроме того, многие типы данных в языке Ру1Ьоп допускают использование комбинированных операторов присваивания (или„в соответствии с другой используемой системой терминов,— операторов дополняющего присваивания), таких как += и *=.

Операторы +, - и * действуют так, как и следовало ожидать, когда в качестве операндов выступают целые числа: »>5+5 11 »> 3 - 7 46 Глава 1. Быстрое введение в процедурное программирование -4 »>4 8 32 Обратите внимание, что оператор может использоваться как унарный (оператор отрицания) и как двухместный оператор (вычитание), что является вполне обычным для большинства языков программирования. Язык Ру8)топ начинает выделяться из общей массы других языков, когда дело доходит до оператора деления: »>12/3 4 0 »>37'2 1.

5 Оператор деления возвращает значение с плавающей точкой, а не целое значение. Во многих других языках он возвращает целое значение, отсекая дробную часть. Если требуется получить целочисленный результат, его всегда можно преобразовать с помощью 1пт( ) (или использовать оператор деления с усечением тттт, который будет рассматриваться позже). о Числовые операторы и функции, стр. 74 »> а = 5 »> а 5 »> а 4= 8 »> а 13 На первый взгляд в предыдущих инструкциях нет ничего особенного, особенно для тех, кто знаком с С-подобными языками программирования.

В таких языках программирования комбинированные операторы присваивания являются сокращенной формой записи присваивания результата операции, например, выражение а += 8 эквивалентно выражению а = а т 8. Однако следует иметь в виду две важные тонкости: одна имеет отношение только к языку Ру$)топ и одна характерна для комбинированных операторов присваивания во всех языках. Первое, что важно запомнить, это то, что тип 1пт является неизменяемым, то есть после присваивания значение типа 1пт нельзя изменить.

Поэтому при выполнении комбинированного оператора присваивания с неизменяемыми объектами в действительности создается новый объект с результатом, а затем целевая ссылка на объект привязывается к этому новому объекту. То есть когда в предыдущем случае интерпретатор РуФ)топ встретит инструкцию а += 8, он вычислит значение а т 8, сохранит результат в новом объекте типа тпт и запишет в а ссылку на этот новый объект типа тпт. (Если после этого в программе не останется ни одной ссылки, указывающей на первоначальный объект, он будет утилизирован сборщиком мусора.) Рис. 1.3 иллюстрирует, как это происходит.

<Золотой запаса Рут)поп 49 Попытка добавить простую строку (например, "бр г1ап" ), а не список, содержащий ее ( [ "сог1ап" ]), приведет к логичному, но, возможно, неожиданному результату: »> веабв = ["ваваае", "вопт1о<гег", "роарКсп"] »> ваабв <= бог!до »> веебв ['веваэе', 'вопт!оаег', 'роарКсп', 'б', 'о', 'г', 'с', 'а', 'и'] Оператор <= списков расширяет список, добавляя к нему каждый элемент итерируемого объекта, находящегося справа, а поскольку строка— это итерируемый объект, то каждый символ строки будет добавлен как отдельный элемент.

При использовании метода аррепб() его аргумент всегда добавляется в список как единый элемент. Составляющая й'7: ввод/вывод Чтобы писать по-настоящему полезные программы, нам необходимо иметь возможность читать входные данные — например, с клавиатуры или из файла и выводить результаты — либо на консоль, либо в файлы. Мы уже использовали встроенную функцию рг! пС(), но ее рассмотрение отложим до главы 4.

В этом подразделе мы сосредоточим свое внимание на консольном вводе/выводе, а для чтения и записи файлов будем использовать механизм перенаправления командной оболочки. В языке Ру()соп имеется встроенная функция !прот(), с помощью которой можно читать ввод пользователя. Эта функция принимает необязательный строковый аргумент (который выводится в консоли как строка приглашения к вводу) и ожидает, пока пользователь введет ответ и завершит ввод клавишей Ел(ег (или йе(шп).

Если пользователь не введет никакой текст и просто нажмет клавишу Ел(ег, функция !про!( ) вернет пустую строку, в противном случае она возвращает строку, содержащую ввод пользователя без символа завершения строки. Ниже приводится первая <полезная< программа. В ней использовано большинство из уже описанных составляющих, единственное новое в ней — это вызов функции !про!(): ргспс("Туре 1псерегв, паол то11о<габ Ьу Епсаг; ог ]овс Епсег Со т!псвл") СОСа1 = 0 оопп! = 0 КЫ1а Тгоа: 1!па = !прас("со!враг: ") сс 1!па: сгу: поаЬег = тпт(1!пе) ахоарС На!оеЕггог ав агг: рыпт(егг) попс!пав соса1 <= поаЬег Глава 1, Быстрое введение в процедурное программирование сввп! и= 1 в1вв; Ьгвах сг сввп!: рг!пс("соил! =", соим, "ссса1 =", соса1, "ювап =", соса1 / сввп!) Эта программа (файл аилс).ру в примерах к книге) состо- ит всего лишь из 17 строк выполняемого программного кода.

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

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

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

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