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

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

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

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

В заключение В этой главе мы начали детальный обзор инструкций языка РуФйоп, исследовав инструкции присваивания, выражения и ргтш. Несмотря З?З Закрепление пройденного на всю простоту использования этих инструкций, у них имеются альтернативные формы, которые являются необязательными, но порой достаточно удобными в применении. Комбинированные инструкции присваивания и форма инструкции рг?пг с перенаправлением, например, позволяют уменьшить объем программного кода. Кроме того, мы изучили синтаксис имен переменных, приемы перенаправления потоков и различные часто встречающиеся ошибки, которых следует избегать, такие как обратное присваивание переменной значения, возвращаемого методом аррепо.

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

Назовите три способа„с помощью которых можно присвоить одно и то же значение трем переменным. 2. Что требуется держать в уме, когда трем переменным присваивается один и тот же изменяемый объект? 3. В чем заключается ошибка в инструкции С = С эогг()? 4. Как с помощью инструкции рг1пг вывести текст во внешний файл? Ответы 1. Можно выполнить групповое присваивание (А = В = С = 0), присваиваниепоследовательности(А, В, С = О, О, 0) илинесколькоинструкций присваивания в отдельных строках(А = О, В = О, С = 0). И последний способ, как было показано в главе 10, заключается в том, чтобы объединить инструкции в одной строке, разделив их точкой с запятой (А = 0; В = 0; С = 0).

2. Если выполнить присваивание следующим образом: то все три имени будут ссылаться на один и тот же объект, поэтому непосредственное изменение объекта с помощью одной переменной (например, А.аррепо(99)) отразится на других. Это справедливо только для изменений, производимых непосредственно в изменяемых объектах, таких как списки и словари. Для неизменяемых объектов, таких как числа и строки, эта проблема не проявляется. 3. Метод списков зогг, как и метод аррепо, выполняет изменения непосредственно в объекте и возвращает значение Воле, а не измененный Гпава11, Присваивание, выражения и рпп1 список. Обратное присваивание переменной 1 приведет к тому, что в нее запишется значение Нэпе, а не отсортированный список.

Как будет показано далее в этой части книги, недавно в языке появилась новая функция эосгес, которая выполняет сортировку любых последовательностей и возвращает новый список с результатами сортировки. Поскольку в этом случае изменения производятся не в самом объекте, есть смысл сохранить возвращаемое значение. 4. Можно вручную перенаправить объект эув. в1еовс, открыв файл перед вызовом инструкции рсапс, или использовать расширенную форму инструкции ршпг » Г11е для вывода в файл единственной инструкцией.

Можно также перенаправить весь выводимый программой текст в файл с помощью синтаксических конструкций системной командной оболочки, но этот вариант к языку РуФЬоп никакого отношения не имеет, Условная инструкция Н Эта глава представляет условную инструкцию! 1, которая является основной инструкцией, используемой для выбора среди альтернативных операций на основе результатов проверки.

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

Условные инструкции Ы Если говорить простым языком, в Ру1йоп инструкция 11 выбирает, какое действие следует выполнить. Это основной инструмент выбора в Ру(Ьоп, который отражает большую часть логики программы на языке РУФоп. Кроме того, это наша первая составная инструкция. Как ивсе составные инструкции языка Ру(йоп, инструкция г1 может содержать другие инструкции, в том числе другие условные инструкции 11.

Фактически Ру(акоп позволяет комбинировать инструкции в программные последовательности (чтобы они выполнялись одна за другой) и в произвольно вложенные конструкции (которые выполняются только при соблюдении определенных условий). Общая форма Условная инструкция 11 в языке Ру1)1оп — зто типичная условная инструкция, которая присутствует в большинстве процедурных языков программирования. Синтаксически сначала записывается часть 11 с условным выражением, далее могут следовать одна или более необязательных частей е111 («е1зе 1(») с условными выражениями и, наконец, 316 Глава 12. Условная инструкция Л необязательная часть е1ве. Условные выражения и часть е1ве имеют ассоциированные с ними блоки вложенных инструкций„с отступом относительно основной инструкции.

Во время выполнения условной инструкции 12 интерпретатор выполняет блок инструкций, ассоциированный с первым условным выражением, только если оно возвращает истину, в противном случае выполняется блок инструкций е1ве. Общая форма записи условной инструкции 12 выглядит следующим образом: Ф Необязательный блок е1зе Простые примеры С целью демонстрации инструкции 12 в действии рассмотрим несколько простых примеров. Все части этой инструкции, за исключением основной части 12 с условным выражением и связанных с ней инструкций, являются необязательными. В простейшем случае остальные части инструкции опущены: »> 12 1: рг1пт 'тгце' тгце Обратите внимание, что приглашение к вводу изменяется на ...

для строк продолжения в базовом интерфейсе командной строки, используемом здесь (в 1РЬЕ текстовый курсор просто перемещается на следующую строку уже с отступом, а нажатие на клавишу Вас)<врасе возвращает на строку вверх). Ввод пустой строки завершает инструкцию и приводит к ее выполнению. Вспомните, что число 1 является логической истиной, поэтому данная проверка всегда будет успешной. Чтобы обработать ложный результат, добавьте часть е1ве: »> 12 пот 1' рг1ПС ггое' ... е1ве; рг1пт 'Га1ве' Га1ве Множественное ветвление Теперь рассмотрим пример более сложной условной инструкции 11, в которой присутствуют все необязательные части: »> х = 'хШег гаош1' »> 12 х == 'горег': рг1пт Гбоы'в )евв1са2" тг <тевтт>: <втатеаептвз> е1>г <тевт2>; <втатеаептв2> е!ве, <ыатеаептвз> р Инструкция 1Г с условным еыраяением Гезтз л Ассоциированный блок а Необязательные части е1т Г 317 Условные инструкции Л в117 х == 'Ьцдв': рг1пт 7ЕПаС'в цр Сост в1вв.

рг1пт :Воп виау( Вцп аиау(' Вцп аиау! Внп аиау! Эта многострочная инструкция простирается от строки ту до конца блока е1ве. При выполнении этой инструкции интерпретатор выполнит вложенные инструкции после той проверки, которая даст в результате истину, или блок е1ве, если все проверки дадут ложный результат (в этом примере так и происходит). На практике обе части е1т т и е1ве могут быть опущены и в каждой части может иметься более одной вложенной инструкции. Обратите внимание, что связь слов тт, е11( и е1ве определена тем, что они находятся на одной вертикальной линии, с одним и тем же отступом. Если вы знакомы с такими языками, как С или Равса1, вам будет интересно узнать, что в языке Ру()топ отсутствует инструкция вттсЬ или саве, которая позволяет выбирать производимое действие на основе значения переменной. Вместо этого множественное ветвление оформЛяЕтСя ЛИбО В ВИДЕ ПОСЛЕдОВатЕЛЬНОСтИ ПрОВЕрОК 1(/Е1> т, Ках В ПрЕдЫ- дущем примере, либо индексированием словарей, либо поиском в списках.

Поскольку словари и списки могут создаваться во время выполнения, они иногда способны обеспечить более высокую гибкость, чем жестко заданная логика инструкции т(: »> оооаса = 'Ьае' »> рг1пс ('врае'; 1.25, № инструкция 'зизгсп' на базе словаря 'Пае': 1.99, № используйте Лав Кеу или дет для 'вддв': 0.99, № значения ло уиолчанию 'ьаооп': 1.10Нопо1ов) 1.99 Тем, кто такой прием видит впервые, может потребоваться некоторое время, чтобы осознать его; и тем не менее, данный словарь обеспечивает множественное ветвление через индексирование по ключу сса1се для выбора одного из нескольких значений, почти так же, как это делает инструкция ви(тсП в языке С.

Эквивалентная„но менее компактная инструкция т( в языке Рудйоп выглядит, как показано ниже: »> 17 соо(со == 'врае'; рг1пт 1.25 а117 сЬо1ов == 'Ьае': рг1пт 1,99 в117 ооо1св == 'аддв'; рг1пт 0.99 а117 сЬо1оа == 'Ьасоп'; рг1пт 1.10 ... а1ва: рг1пт 'Вао оЬо1оа' З?В Глаза 12. Условная инструкция б 1. 99 Обратите внимание на часть е1зе, которая предназначена для обработки ситуации, когда не найдено ни одного совпадения. Как было показано в главе 8, значение по умолчанию при использовании словарей может быть получено с помощью методов Ьаз Кеу и дет или при перехвате исключения.

Те же самые приемы могут использоваться и здесь — для определения действия по умолчанию в случае реализации множественного ветвления на базе словаря. Ниже приводится пример с использованием метода де( для получения значения по умолчанию: »> ЬгапоЬ = ('враз': 1.25, 'Ьав': 1.99, 'вдрв': 0.99) »> рг(пт Ьгапоп.двт('арап', 'Ваз опо1св') 1.

25 »> рг1пт Ьгапсп.овт('Ьаооп', 'Ваз опо(ов') Вап плотов Словари хорошо подходят для выбора значений, ассоциированных с ключами, но как быть в случае более сложных действий, которые можно запрограммировать в инструкциях! Г? В четвертой части книги вы узнаете, что словари также могут содержать функции, выполняющие сложные действия при ветвлении, реализуя обычные таблицы переходов. В этом случае функции играют роль значений в словаре, часто создаются как лямбда-функции и вызываются добавлением круглых скобок. Подробнее об этом вы прочитаете далее. Множественное ветвление на базе словаря довольно удобно использовать в программах, которые имеют дело с динамическими данными„ однако большинство программистов согласятся, что использование инструкции т( является наиболее простым способом организации множественного ветвления.

Обычно, при колебаниях при выборе того или иного подхода предпочтение следует отдавать более простому и более удобочитаемому. Синтаксические правила языка Ру~йоп Первое знакомство с синтаксической моделью языка Ру()топ состоялось в главе 10. Теперь, когда мы подошли к таким крупным инструкциям, как 1т, настало время пересмотреть и дополнить сведения о синтаксисе, введенные ранее. Вообще язык программирования РуЬ)топ обладает простым синтаксисом, основанным на применении инструкций. Однако он обладает некоторыми особенностями, о которых вам необходимо знать: Инструкции выполняются последовательно, одна за другой, пока не будет предусмотрено что-то другое, Обычно интерпретатор выполняет инструкции в файле или в блоке от начала до конца, но та- Синтаксические правила языка РутЬол 319 кие инструкции, как 1~ (и, как будет показано далее, циклы), заставляют интерпретатор выполнять переходы внутри программного кода.

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

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

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

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