Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 32
Текст из файла (страница 32)
Последний способ обычно используется для обеспечения возможности настройкисистем под условия пользователя.4. Если сценарий просто выводит какие-то данные и завершает работу, окнос этой информацией исчезает немедленно, еще до того, как вы сможете увидеть, что было выведено (поэтому в таких ситуациях удобно использоватьфункцию input). Сообщения об ошибках, возникших в ходе работы сценария, также приводят к немедленному закрытию окна еще до того, как выуспеете исследовать его содержимое (поэтому предпочтительнее в ходе разработки использовать системную командную строку или среду разработкиIDLE).5.
Интерпретатор Python по умолчанию выполняет импорт (загрузку) модуляодин раз за сеанс, поэтому, если вы изменили исходный текст модуля и вамнеобходимо запустить его новую версию, не покидая интерактивный сеанс,вам следует перезагрузить модуль. Однако прежде чем выполнить перезагрузку, модуль необходимо импортировать. Запуск программного кода изсистемной командной строки, щелчком мыши на ярлыке или в интегрированной среде разработки, такой как IDLE, обычно вообще снимает эту проблему, так как в таких случаях система каждый раз выполняет текущуюверсию программного кода.6.
В окне редактирования текста для файла, который требуется запустить,выберите пункт меню Run (Запустить) → Run Module (Запустить модуль). В результате программный код в окне редактирования будет запущен как файл116Глава 3. Как пользователь запускает программысценария верхнего уровня, а вывод, сгенерированный с этим сценарием,появится в главном окне интерактивной командной оболочки Python.7. Интегрированная среда разработки IDLE может зависать при запуске некоторых типов программ, особенно с графическим интерфейсом пользователя, которые выполняются в нескольких потоках (рассмотрение усовершенствованной методики выходит за рамки данной книги).
Кроме того, средаIDLE обладает некоторыми удобными особенностями, которые не поддерживаются при работе вне этой среды: переменные сценария автоматическиимпортируются в интерактивную командную оболочку IDLE, но в командной строке Python такая возможность отсутствует.8. Пространство имен – это просто пакет переменных (то есть имен). В Pythonон приобретает форму объекта с атрибутами.
Каждый файл модуля автоматически становится пространством имен, то есть пакетом переменных,отражающих выполненные операции присваивания на верхнем уровнефайла. Пространства имен позволяют избежать конфликтов имен в программах на языке Python: поскольку каждый модуль – это самостоятельное пространство имен, файлы должны явно импортировать другие файлы,чтобы использовать имена, определяемые в них.Упражнения к первой частиПришло время начинать писать программный код самостоятельно. Здесь представлены достаточно простые упражнения, но некоторые из поднимаемыхвопросов связаны с темами, которые будут рассматриваться в последующихглавах.
Обязательно ознакомьтесь с разделом «Часть I, Введение» в приложении с решениями (приложение B), где приводятся ответы, – упражнения и ихрешения иногда содержат дополнительные сведения, не рассматривавшиесяв основном тексте части, поэтому рекомендуется ознакомиться с ответами,даже если вам удастся ответить на вопросы самостоятельно.1. Взаимодействие. Используя системную командную строку, IDLE или другой инструмент, запустите интерактивный сеанс интерпретатора Python(приглашение к вводу >>>) и введите выражение “Hello World!” (включаякавычки). Строка должна быть повторно выведена на экран. Цель этогоупражнения состоит в том, чтобы помочь вам настроить окружение длязапуска интерпретатора P�������������������������������������������ython��������������������������������������.
В некоторых случаях вам может потребоваться сначала выполнить команду cd, ввести полный путь к каталогу,куда был установлен выполняемый файл интерпретатора Python, или добавить путь к этому каталогу в переменную окружения PATH. При желаниизначение переменной PATH в системах UNIX можно установить в файле .cshrcили .kshrc; в Windows для этой цели можно использовать файл setup.bat,autoexec.bat или выполнить настройку переменной окружения с использованием инструмента с графическим интерфейсом. Справку по настройкампеременных окружения см. в приложении А.2. Программы. В текстовом редакторе, который вы предпочитаете, создайтепростой файл модуля, содержащий единственную инструкцию print(‘Hellomodule world!’), и сохраните его под именем module1.py.
Теперь запуститеэтот файл каким-либо способом: из среды разработки IDLE, щелчком на ярлыке, вызовом интерпретатора Python из командной строки, передав емуимя файла в виде аргумента (например, python module1.py), и так далее.
Попробуйте поэкспериментировать с разными способами запуска, которые об-Закрепление пройденного117суждались в этой главе. Какие способы запуска показались вам проще? (Наэтот вопрос не может быть единственно правильного ответа.)3. Модули. Запустите интерактивный сеанс работы с интерпретатором Python(приглашение к вводу >>>) и импортируйте модуль, который был созданв упражнении 2. Попробуйте переместить файл в другой каталог и импортировать его снова из первоначального каталога (то есть запустите Pythonв каталоге, где производился импорт в первый раз).
Что произошло? (Подсказка: посмотрите, остался ли в первоначальном каталоге файл с байткодом module1.pyc?)4. Сценарии. Если ваша платформа поддерживает такую возможность, добавьте комбинацию символов #! в начало файла модуля module1.py, дайтефайлу право на выполнение и попробуйте запустить его как обычный исполняемый файл. Что должна содержать первая строка? Обычно комбинация символов #! имеет особое значение только на платформе UNIX, Linuxи других UNIX-подобных системах, таких как MAC OS X. Если вы работаете в Windows, попробуйте просто запустить файл, введя его имя без предшествующего ему слова «python» (этот способ работает в последних версияхWindows) или с помощью диалога Пуск (Start) → Выполнить… (Run…).5.
Ошибки и отладка. Поэкспериментируйте с математическими выражениями и операциями присваивания в интерактивной командной оболочке Python. Для начала введите выражения 2 ** 500 и 1/0. Что произошло?Потом попробуйте ввести имя переменной, которой еще не было присвоенозначение. Что произошло на этот раз?Вы еще можете не знать этого, но вы столкнулись с исключениями (эту темумы подробно будем рассматривать в седьмой части книги). Там вы узнаете, что, с технической точки зрения, ваши действия привели к вызову того,что известно под названием обработчик исключений по умолчанию, – программного кода, который выводит стандартные сообщения об ошибках.Если вы не выполняете перехват ошибок в своих программах, это за вас сделает обработчик по умолчанию, который выведет сообщение об ошибке.Исключения неразрывно связаны с понятием отладки в языке Python.Для начала вам вполне будет достаточно стандартного механизма обработки ошибок – он позволит узнать причину ошибки, а также покажет, какиестроки кода выполнялись в момент ее появления.
О дополнительных возможностях отладки рассказывается во врезке «Отладка программ на языкеPython» выше.6. Прерывание программы. В командной строке интерпретатора Python введите следующие инструкции:L = [1, 2] # Создать список с двумя элементамиL.append(L) # Добавить в конец спискаLЧто произошло? Во всех современных версиях Python вы увидите кажущийся странным результат, который описывается в приложении с решениями, а также в следующей части книги. При использовании версий Pythonстарее 1.5.1 остановить работу этого программного кода на большинствеплатформ вам поможет комбинация клавиш Ctrl-C.
Как вы думаете, в чемпричина происходящего? Что вывел интерпретатор после нажатия комбинации клавиш Ctrl-C?118Глава 3. Как пользователь запускает программыЕсли вы используете версию Python более старую, чем 1.5.1,прежде чем выполнить это упражнение, обязательно проверьте,имеется ли возможность прерывать работу программ комбинацией клавиш Ctrl-C, в противном случае вам придется ждатьочень долго.7.