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

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

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

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

Однако такой подход не можетприменяться к составным инструкциям. Другими словами, в одной строкеможно размещать только простые инструкции, такие как присваивание, printи вызовы функций. Составные инструкции по-прежнему должны находитьсяв отдельной строке (иначе всю программу можно было бы записать в одну строку, что, скорее всего, не нашло бы понимания у ваших коллег!).История о двух if333Другое специальное правило, применяемое к инструкциям, по сути являетсяобратным к предыдущему: допускается записывать одну инструкцию в нескольких строках. Для этого достаточно заключить часть инструкции в парускобок – круглых (()), квадратных ([]) или фигурных ({}).

Любой программныйкод, заключенный в одну из этих конструкций, может располагаться на нескольких строках: инструкция не будет считаться законченной, пока интерпретатор Python не достигнет строки с закрывающей скобкой. Например, литерал списка можно записать так:mlist = [111,222,333]Так как программный код заключен в пару квадратных скобок, интерпретаторвсякий раз переходит на следующую строку, пока не обнаружит закрывающуюскобку.

Литералы словарей в фигурных скобках (а также литералы множестви генераторы словарей и множеств в Python 3.0) тоже могут располагаться в нескольких строках, а с помощью круглых скобок можно оформить многострочные кортежи, вызовы функций и выражения. Отступы в строках, где продолжается инструкция, в учет не принимаются, хотя здравый смысл диктует, чтостроки все-таки должны иметь некоторые отступы для обеспечения удобочитаемости.Круглые скобки являются самым универсальным средством, потому что в нихможно заключить любое выражение. Добавьте левую скобку, и вы сможете перейти на следующую строку и продолжить свою инструкцию:X = (A + B +C + D)Между прочим, такой прием допускается применять и к составным инструкциям.

Если вам требуется записать длинное выражение, оберните его круглыми скобками и продолжите на следующей строке:if (A == 1 andB == 2 andC == 3):print(‘spam’ * 3)Еще одно старое правило также позволяет переносить инструкцию на следующую строку: если предыдущая строка заканчивается символом обратного слеша:X = A + B + \ # Альтернативный способ, который может быть источником ошибокC + DНо это устаревшее правило, которое не рекомендовано к использованию в новых программах, потому что символы обратного слеша малозаметны и ненадежны – не допускается наличие каких-либо других символов после символаобратного слеша, а случайное удаление символа обратного слеша может приводить к неожиданным эффектам, если следующая строка может интерпретироваться, как самостоятельная инструкция. Кроме того, это рассматриваетсякак пережиток языка C, где очень часто используются макроопределения #���define; в Питонляндии нужно все делать так, как это делают Питонисты, а не какпрограммисты на языке C.334Глава 10.

Введение в инструкции языка PythonСпециальный случай оформления блокаКак уже говорилось выше, инструкции во вложенном блоке обычно объединяются по величине отступа. Специальный случай: тело составной инструкцииможет располагаться в той же строке, что и основная инструкция, после символа двоеточия:if x > y: print(x)Это позволяет записывать в одной строке условные операторы, циклы и так далее. Однако такой прием будет работать, только если тело составной инструкции не содержит других составных инструкций.

То есть после двоеточия могутследовать только простые инструкции – инструкции присваивания, инструкции print, вызовы функций и подобные им. Крупные инструкции по-прежнемудолжны записываться в отдельных строках. Дополнительные части составныхинструкций (такие как блоки else в условных инструкциях if, с которыми мывстретимся ниже) также должны располагаться в отдельных строках. Тело инструкции может состоять из нескольких простых инструкций, разделенныхточкой с запятой, но такой стиль оформления не приветствуется.Вообще, хотя это не является обязательным требованием, но если вы будетеразмещать инструкции в отдельных строках и всегда будете оформлять отступы для вложенных блоков, ваш программный код будет проще читать и вносить в него изменения.

Кроме того, некоторые инструменты профилированияоказываются неспособными справиться с ситуациями, когда несколько инструкций располагаются в одной строке или когда тело составной инструкцииоказывается на одной строке вместе с основной инструкцией. Поэтому в вашихинтересах всегда стремиться оформлять программный код как можно проще.Чтобы увидеть одно из этих правил в действии (когда однострочная инструкцияif используется для прерывания выполнения цикла), давайте перейдем к следующему разделу, где мы напишем и опробуем настоящий программный код.Короткий пример: интерактивные циклыМы увидим все эти синтаксические правила в действии, когда будем совершатьтурне по конкретным составным инструкциям языка Python в нескольких следующих главах, но эти правила работают одинаково везде в языке Python.

Дляначала рассмотрим короткий практический пример, который продемонстрирует способ применения синтаксических правил к оформлению инструкцийи вложенных блоков на практике и попутно познакомит вас с некоторыми инструкциями.Простой интерактивный циклПредположим, что от нас требуется написать программу на языке Python, которая взаимодействует с пользователем в окне консоли. Возможно, программабудет принимать информацию для дальнейшей передачи в базу данных иличисла для выполнения расчетов. Независимо от конечной цели, вам необходимо написать цикл, который будет считывать одну или более строк, введенныхпользователем с клавиатуры, и выводить их обратно на экран. Другими словами, вам нужно написать классический цикл, выполняющий операции чтения/вычисления/вывода.Короткий пример: интерактивные циклы335В языке Python для реализации таких интерактивных циклов используетсятипичный шаблон, который выглядит, как показано ниже:while True:reply = input(‘Enter text:’)if reply == ‘stop’: breakprint(reply.upper())В этом фрагменте использованы несколько новых для вас идей:•• Программный код выполняется в цикле while, который в языке Pythonявляется наиболее универсальной инструкцией цикла.

Подробнее об инструкции while мы будем говорить позднее, но в двух словах замечу, что онасостоит из слова while, за которым следует условное выражение. Результатэтого выражения интерпретируется как истина или как ложь. Далее следует вложенный блок программного кода, который продолжает выполнятьсяв цикле, пока условное выражение возвращает истину (слово True здесь все­гда возвращает значение истины).•• Встроенная функция input, с которой мы уже встречались ранее в этой книге, используется здесь как универсальное средство получения ввода с клавиатуры – она выводит подсказку, текст которой содержится в необязательном строковом аргументе, и возвращает введенный пользователем ответв виде строки.•• Однострочная инструкция if, которая оформлена в соответствии со специальным правилом для вложенных блоков: тело инструкции if располагается в той же строке, что и основная инструкция, после символа двоеточия,а не на отдельной строке под ней с соответствующим отступом.

Она одинаково хорошо работала бы при любом из двух вариантов оформления, но притаком подходе нам удалось сэкономить одну строку.•• Наконец, для немедленного выхода из цикла использована инструкцияbreak – она просто выполняет выход за пределы инструкции цикла и программа продолжает свою работу с первой инструкции, которая расположена вслед за циклом.

Без этой инструкции цикл while работал бы вечно, поскольку его условное выражение всегда возвращает истину.В результате такая комбинация инструкций означает следующее: «читатьстроки, введенные пользователем,4 и выводить их после преобразования всехсимволов в верхний регистр, пока пользователь не введет строку “�����������stop�������”». Существуют и другие способы записи такого цикла, но данная форма очень частовстречается в программах на языке Python.Обратите внимание, что все три строки, вложенные в инструкцию цикла while,имеют одинаковые отступы, благодаря этому они визуально образуют вертикальную линию блока программного кода, ассоциированного с инструкциейцикла while. Тело цикла завершается либо с концом файла, либо с первой инструкцией, имеющей меньший отступ.Запустив этот фрагмент, мы получили следующий порядок взаимодействийс ним:Enter text:spamSPAMEnter text:4242Enter text:stop336Глава 10.

Введение в инструкции языка PythonПримечание, касающееся различий между версиями: Этот пример написан для работы под управлением интерпретатора версии 3.0. Если вы используете Python 2.6 или более раннюю версию, этот пример будет работать точно так же, но вместо функции input вы должны использовать функцию raw_input и можетеопустить круглые скобки в инструкции print. В версии 3.0 функция raw_input была переименована, а инструкция print превратилась во встроенную функцию (подробнее об инструкции printрассказывается в следующей главе).Математическая обработка данных пользователяИтак, наш сценарий работает, а теперь предположим, что вместо преобразования символов текстовой строки в верхний регистр нам необходимо выполнитьнекоторые математические действия над введенными пользователем числами, – например, вычислить квадраты чисел, что может получиться не совсемтак, как ожидают наиболее молодые и нетерпеливые пользователи.

Для достижения желаемого эффекта мы могли бы попробовать использовать следующиеинструкции:>>> reply = ‘20’>>> reply ** 2...текст сообщения об ошибке опущен...TypeError: unsupported operand type(s) for ** or pow(): ‘str’ and ‘int’Этот прием не работает, потому что (как обсуждалось в предыдущей части книги) интерпретатор выполняет преобразование типов объектов в выражениях,только если они являются числами, а ввод пользователя всегда передается сценарию в виде строки.

Мы не можем возвести строку цифр в степень, не преобразовав ее в целое число вручную:>>> int(reply) ** 2400Вооружившись этой информацией, мы можем переделать наш цикл для выполнения математических действий:while True:reply = input(‘Enter text:’)if reply == ‘stop’: breakprint(int(reply) ** 2)print(‘Bye’)В этом сценарии используется однострочная инструкция if, которая, каки прежде, производит выход из цикла по получении от пользователя строки“������������������������������������������������������������������������stop��������������������������������������������������������������������”, а кроме того, выполняется преобразование введенной строки для выполнения необходимой математической операции.

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

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

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

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