Лутц М. - Изучаем Python (1077325), страница 23
Текст из файла (страница 23)
В результате программный код в окне редактирования будет запущен как файл сценария верхнего уровня, а вывод, сгенерированный с этим сценарием, появится в главном окне интерактивной командной оболочки РуОтоп. 6. Интегрированная среда разработки 1РЬЕ может зависать при за- пуске некоторых типов программ, особенно с графическим интерфейсом пользователя, которые выполняются в нескольких потоках (рассмотрение усовершенствованной методики выходит за рамки данной книги). Кроме того, среда 1РЬЕ обладает некоторыми удобными особенностями, которые не поддерживаются при работе вне этой среды: переменные сценария автоматически импортируютея в интерактивную командную оболочку 1РЬЕ, но в командной строке РуС)топ такая возможность отсутствует.
105 Закрепление пройденного ?. Пространство имен — это просто пакет переменных (то есть имен). ВРуФ)юп он приобретает форму объекта с атрибутами. Каждый файл модуля автоматически становится пространством имен, то есть пакетом переменных, отражающих выполненные операции присваивания на верхнем уровне файла. Пространства имен позволяют избежать конфликтов имен в программах на языке Ру$йоп: поскольку каждый модуль — это самостоятельное пространство имен, файлы должны явно импортировать другие файлы, чтобы использовать имена, определяемые в них. Упражнения к первой части Пришло время начинать писать программный код самостоятельно. Здесь представлены достаточно простые упражнения, но некоторые из поднимаемых вопросов связаны с темами, которые будут рассматриваться в последующих главах. Обязательно ознакомьтесь с разделом «Часть 1, Введение» в приложении с решениями (приложение В), где приводятся ответы — упражнения и их решения иногда содержат дополнительные сведения, не рассматривавшиеся в основном тексте части, поэтому вам определенно следует ознакомиться с ответами, даже если вам удастся ответить на вопросы самостоятельно.
1. Взаимодействие. Используя системную командную строку, ПИЕ или другой инструмент, запустите интерактивный сеанс интерпретатора Ру$)юп (приглашение к вводу»>) и введите выражение "Не11о Ног1О! " (включая кавычки). Строка должна быть повторно выведена на экран. Цель этого упражнения состоит в том, чтобы помочь вам настроить окружение для запуска интерпретатора РуФ)юп. В некоторых случаях вам может потребоваться сначала выполнить команду сс, ввести полный путь к каталогу, куда был установлен выполняемый файл интерпретатора РуФ)юп, или добавить путь к этому каталогу в переменную окружения РАТН. При желании значение переменной РАТН в системах ()М1Х можно установить в файле .сайго или .ЬэЬгс; в %Г(пдошла для этой цели можно использовать файл эесир.Ьаг, аигоехес.Ьаг или выполнить настройку переменной окружения с использованием инструмента с графическим интерфейсом.
Справку по настройкам переменных окружения см. в приложении А. 2. Программы. В текстовом редакторе, который вы предпочитаете, создайте простой файл модуля, содержащий единственную инструкцию рг1лг 'Не11о зодо1е ног1оч ', и сохраните его под именем то«1и1е1.ру. Теперь запустите этот файл каким-либо способом: из среды разработки 1)З1 Е, щелчком на ярлыке, вызовом интерпретатора Ру1йоп из командной строки, передав ему имя файла в виде аргумента (например, рутпоп зоео1е1, ру) и т. д. Попробуйте поэкспериментировать с разными способами запуска, которые обсуждались ватой главе. Какие способы запуска показались вам проще? (На этот вопрос не может быть единственно правильного ответа.) 106 Глава 3. Как пользователь запускает программы 3.
Модули. Запустите интерактивный сеанс работы с интерпретатором РуФ]топ (приглашение к вводу»>) и импортируйте модуль, который был создан в упражнении 2. Попробуйте переместить файл в другой каталог и импортировать его снова из первоначального каталога (то есть запустите Ру1]топ в каталоге, где производился импорт в первый раз). Что произошло2 (Подсказка: посмотрите, остался ли в первоначальном каталоге файл с байт-кодом в«ос(и1е1.рус2) 4. Сценарии.
Если ваша платформа поддерживает такую возможность, добавьте комбинацию символов а! в начало файла модуля лто«(и1е1.ру, дайте файлу право на выполнение и попробуйте запустить его как обычный исполняемый файл. Что должна содержать первая строка2 Обычно комбинация символов а! имеет особое значение только на платформе 111ч1Х, 1.1ппх и других (]М1Х-подобных системах, таких как МАС ОБ Х. Если вы работаете в Ът']пс]отче, попробуйте просто запустить файл, введя его имя без предшествующего ему слова «руЬ]топ» (этот способ работает в последних версиях %Г]пботтв), или с помощью диалога Пуск-+Выполнить...
(5(аК-»Рип...). б. Ошибки. Поэкспериментируйте с математическими выражениями и операциями присваивания в интерактивной командной оболочке Ру$]топ. Для начала введите выражение т/О. Что произошло2 Потом попробуйте ввести имя переменной, которой еще не было присвоено значение.
Что произошло на этот раз2 Вы еще можете не знать этого, но вы столкнулись с исключениями (эту тему мы подробно будем рассматривать в седьмой части книги). Там вы узнаете, что с технической точки зрения ваши действия привели к вызову того, что известно под названием обработчик исключений ло умолчанию, — программного кода, который выводит стандартные сообщения об ошибках. Если вы не выполняете перехват ошибок в своих программах, это за вас сделает обработчик по умолчанию, который выведет сообщение об ошибке. Для отладки сложного программного кода среда разработки 1РЬЕ предоставляет отладчик с графическим интерфейсом (описывается в разделе «Дополнительные возможности 1ПЬЕ», в этой же главе), а в состав стандартной библиотеки модулей РуФ]топ входит модуль с именем рВЬ, реализующий отладчик с интерфейсом командной строки.
(Подробнее о модуле рв Ь можно узнать из руководства к стандартной библиотеке.) Для начала вам вполне будет достаточно стандартного механизма обработки ошибок — он позволит узнать причину ошибки, а также покажет, какие строки кода выполнялись в момент ее появления. 6.
Прерывание программы. В командной строке интерпретатора Ру- 1]топ введите следующие инструкции: Закрепление пройденного Что произошло7 Если вы используете версию Русая более новую, чем Ее1еаве 1.5, скорее всего вы увидите кажущийся странным результат, который будет описан в следующей части книги. При использовании версий Руытоп, старее 1.5.1, остановить работу этого программного кода на большинстве платформ вам поможет комбинация клавиш Ссг1-С. Как вы думаете, в чем причина происходящего7 Что вывел интерпретатор после нажатия комбинации клавиш Ссг1-С7 Если вы используете версию Руйоп более старую, чем 1.5. 1, преж'~в~ де чем выполнить это упражнение, обязательно проверьте, имеется ли возможность прерывать работу программ комбинацией кла. вяш Стг1-С, в противном случае ввм придется ждать очень долго.
7. Документация. Потратьте по крайней мере 17 минут на исследование библиотеки РуФ)топ и руководства по языку программирования, чтобы получить представление о стандартной библиотеке и о структуре комплекта документации. Вам нужно понять по крайней мере, где в руководстве находятся описания основных тем. После этого вы легко сможете отыскать интересующую вас информацию. В системе ЯЧпс)овгз это руководство находится в разделе Руйоп меню кнопки Пуск (51агС), а также в виде пункта Руйоп Юосз (Документация Руйоп) в меню Не1р (Справка) в среде разработки 1Р1.Е или в Интернете по адресу: Иттрг//шшш.рутИоп.ога/т)ос.
Кроме того, хотелось бы также сказать несколько слов о других руководствах и источниках документации, описываемых (включая РуПос и функцию Ле1р) в главе 14. Если у вас есть свободное время, займитесь исследованием веб-сайтов Руйоп и Чаи!ьв оГ Рагпаввцв, а также веб-сайта расширений сторонних разработчиков РуРу. В частности, ознакомьтесь со страницами документации и поиска на сайте РутИоп.огя — они могут оказаться для вас весьма важными ресурсами.
Типы и операции Введение в типы объектов языка РуФоп Начиная с этой главы, мы приступаем к изучению языка Рузйоп. В самом общем виде можно сказать, что программы на языке Ру$Ьоп выполняют некоторые действия над чем-то. »Некоторые действия» принимают форму операций, таких как сложение или конкатенация, а под »чем-то» подразумеваются объекл»ьк над которыми выполняются операции. В этой части книги мы сосредоточимся на этом»что-то» и на действиях, которые могут выполняться программой.
Говоря более формальным языком, данные в языке РуФоп представлены в форме объектов — встроенных, предоставляемых языком Ру$Ьоп, или объектов, которые мы создаем с помощью других инструментов, таких как библиотеки расширений, написанные на языке С. Мы уточним это определение позднее, но если говорить по сути, объекты — это области памяти со значениями и ассоциированными с ними наборами операций. Объекты являются самым фундаментальным понятием в программировании на языке РуФпоп, поэтому эта глава начинается с обзора встроенных объектных типов языка Ру$аоп.
Однако для начала проясним, как эта глава вписывается в общую картину языка РуФпоп. С более определенной точки зрения программы на языке Ру»поп можно разложить на такие составляющие, как модули, инструкции, выражения и объекты; при этом: 1. Программы делятся на модули, 2. Модули содержат инструкции. 3. Инструкции состоят из выражений. 4.
Выражения создают и обрабатывают объекты. В главе 3 рассматривалась самая вершина этой иерархии — модули. Эта часть книги начинает рассмотрение с конца иерархии — с исследования Глава 4. Введение в типы объектов языка Рутбоп встроенных объектов и выражений, в которых эти объекты могут уча- ствовать. Зачем нужны встроенные типы? Если вам приходилось использовать языки программирования более низкого уровня, такие как С или С++, то вы уже знаете, что значительная доля работы приходится на реализацию объектов, известных также как структуры данных, которые предназначены для представления компонентов внутри приложений.