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

М. Лутц - Изучаем Python (4-е издание)- 2011 (1126907), страница 83

Файл №1126907 М. Лутц - Изучаем Python (4-е издание)- 2011 (М. Лутц - Изучаем Python (4-е издание)- 2011) 83 страницаМ. Лутц - Изучаем Python (4-е издание)- 2011 (1126907) страница 832019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В результате получается менее противоречивый и более удобочитаемый программный код (в отличие от большей части кода, написанного на C-подобных языках).Требования к выравниванию программного кода в соответствии с его логической структурой – это главная составляющая, способствующая созданиюудобочитаемого кода, и, следовательно, кода, пригодного к многократному использованию и простого в сопровождении как вами, так и другими. Фактически даже если ранее вы никогда не использовали Python, после прочтенияэтой книги у вас должна выработаться привычка оформлять отступы в программном коде для удобочитаемости в любом языке программирования.

ЯзыкPython вносит определенные ограничения, сделав отступы частью синтаксиса,но они достаточно важны для любого языка программирования и оказываютогромное влияние на применимость вашего программного кода.Ваш опыт может отличаться от моего, но когда я занимался разработкой полный рабочий день, мне платили зарплату за работу над крупными старымипрограммами, написанными на языке C++, над которыми долгие годы трудились множество программистов. Практически у каждого программиста былсвой стиль оформления программного кода. Например, мне часто приходилосьизменять циклы while, написанные на языке C++, которые начинались примерно так:while (x > 0) {Даже еще не дойдя до отступов, мы можем столкнуться с тремя или четырьмяспособами расстановки фигурных скобок в C-подобных языках. В организациях часто ведутся жаркие споры и пишутся стандарты по оформлению ис-330Глава 10.

Введение в инструкции языка Pythonходных текстов программ (обсуждение которых сильно выходит за рамки проблем, которые решаются в процессе программирования). Оставим этот вопросв стороне, ниже приводится пример оформления, с которым мне часто приходилось сталкиваться в программном коде на языке C++. Первый программист,который поработал над этим циклом, оформлял отступы четырьмя пробелами:while (x > 0) {--------;--------;Со временем этот программист был переведен на руководящую должность,и его место занял другой, который предпочитал использовать более широкиеотступы:while (x > 0) {--------;--------;--------;--------;Позднее и он ушел на другую работу, а его место занял третий, которому ненравилось делать отступы:while (x > 0) {--------;--------;--------;--------;--------;--------;}И так далее. В конце блок завершается закрывающей фигурной скобкой (}),которая и делает этот фрагмент структурированным (о чем можно говоритьс определенной долей сарказма).

В любом блочно-структурированном языкепрограммирования, будь то Python или другой язык, если вложенные блоки неимеют непротиворечивых отступов, их очень сложно читать, изменять и приспосабливать для многократного использования. Отступ – это важная составляющая поддержки удобочитаемости.Ниже приводится другой пример, на котором, возможно, вам приходилосьобжечься, если вы достаточно много программировали на C-подобном языке.Взгляните на следующие инструкции языка C:if (x)if (y)statement1;elsestatement2;К какому оператору if относится инструкция else? Это удивительно, но инструкция else относится к вложенному оператору if (if(y)), даже при том, чтовизуально она выглядит так, как если бы относилась к внешнему операторуif (if(x)).

Это классическая ловушка языка C и она может привести к неправильному пониманию программного кода тем, кто его изменяет, и к появлениюошибок при его изменении, которые будут обнаружены, только когда марсоходврежется в скалу!История о двух if331Такого не может произойти в языке Python, потому что отступы для него имеют важное значение и программный код работает именно так, как выглядит.Взгляните на эквивалентный фрагмент на языке Python:if x:if y:statement1else:statement2В этом примере инструкции if и else, расположенные на одной вертикальной линии, связаны логически (внешний оператор if x). В некотором смыслеPython – это язык типа WYSIWYG (�����What� �����������You���������������See�������Is� �����What� �����������������You���������������������������Get���������� – что видишь, то и получаешь) – что вы видите, то и получаете, потому что порядокоформления программного кода определяет порядок его выполнения, независимо от предпочтений того, кто его пишет.Если этого недостаточно, чтобы осознать преимущества синтаксиса языкаPython, приведу одну историю.

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

Тот факт,что в языке Python отступы были возведены в ранг синтаксиса, по большейчасти выглядит как достоинство языка.Наконец, имейте в виду, что практически любой текстовый редактор с дружественным (для программистов) интерфейсом обладает встроенной поддержкой синтаксической модели языка Python. В Python-среде разработки IDLE,например, отступы оформляются автоматически1, когда начинается ввод вложенного блока; нажатие клавиши Backspace (забой) возвращает на один уровеньвложенности выше, а кроме того, IDLE позволяет настроить величину отступовво вложенном блоке.

Нет никаких стандартных требований к оформлению отступов: чаще всего используются четыре пробела или один символ табуляциина каждый уровень вложенности; вам самим решать, какой ширины отступывы будете использовать. Выполняйте отступ вправо, чтобы открыть вложенный блок, и возвращайтесь на предыдущий уровень, чтобы закрыть его.Вообще говоря, недопустимо смешивать символы табуляции и пробелы дляоформления отступов в одном и том же блоке, если делать это неединообраз-1Напомним, IDLE – среда разработки, специально созданная Гвидо ван Россумомв проекте Python. Первый релиз вышел вместе с версией Python 1.5.2.

Одно из объяснений использования такого слова (idle – бездействующий, ленивый), в отличиеот принятого в других языковых средах термина IDE, объявлено на сайте python.org(http://www.python.org/idle/doc/idlemain.html) и выглядит так: “IDLE – это акронимот Integrated DeveLopment Environment”. См. также главу 3. – Примеч. перев.332Глава 10. Введение в инструкции языка Pythonно. Для оформления отступов в блоке используйте либо символы табуляции,либо пробелы, но не одновременно те и другие (в действительности Python 3.0теперь считает ошибкой непоследовательное использование символов табуляции и пробелов, как мы увидим в главе 12).

Точно так же нежелательно смешивать символы табуляции и пробелы для оформления отступов в любом другом структурированном языке программирования – такой программный кодочень трудно будет читать следующему программисту, если в его текстовомредакторе отображение символов табуляции будет настроено иначе, чем у вас.C-подобные языки позволяют программистам нарушать это правило, но делатьэтого не следует, – в результате может получиться жуткая мешанина.Я не могу не подчеркнуть, что независимо от того, на каком языке вы программируете, вы всегда должны быть последовательными в оформлении отступовдля повышения удобочитаемости. Фактически если в начале вашей карьерываши учителя не приучили вас к этому, они просто навредили вам.

Большинство программистов, особенно те, кому приходится читать чужой код, считаютвеликим благом, что Python возвел отступы в ранг синтаксиса. Кроме того, напрактике замена фигурных скобок символами табуляции является достаточнопростой задачей для инструментальных средств, которые должны выводитьпрограммный код на языке Python. Вообще, делайте все то же, что вы делаетена языке C, но уберите фигурные скобки, и ваш программный код будет удовлетворять правилам синтаксиса языка Python.Несколько специальных случаевКак уже упоминалось ранее, в синтаксической модели языка Python:•• Конец строки является концом инструкции, расположенной в этой строке(точка с запятой не требуется).•• Вложенные инструкции объединяются в блоки по величине отступов (безфигурных скобок).Эти правила охватывают большую часть программного кода на языке Python,который вы будете писать или с которым придется столкнуться.

Однако существуют некоторые специальные правила, которые касаются оформления какотдельных инструкций, так и вложенных блоков.Специальные случаи оформления инструкцийОбычно на каждой строке располагается одна инструкция, но вполне возможно для большей компактности записать несколько инструкций в одной строке,разделив их точками с запятой:a = 1; b = 2; print(a + b)# Три инструкции на одной строкеЭто единственный случай, когда в языке Python необходимо использовать точки с запятой: как разделители инструкций. Однако такой подход не можетприменяться к составным инструкциям. Другими словами, в одной строкеможно размещать только простые инструкции, такие как присваивание, 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Но это устаревшее правило, которое не рекомендовано к использованию в новых программах, потому что символы обратного слеша малозаметны и ненадежны – не допускается наличие каких-либо других символов после символаобратного слеша, а случайное удаление символа обратного слеша может приводить к неожиданным эффектам, если следующая строка может интерпретироваться, как самостоятельная инструкция.

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

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

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

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