Главная страница
Навигация по странице:

  • Закрепление пройденного Контрольные вопросы

  • Тестирование программного кода в интерактивном режиме

  • Использование интерактивного режима Несмотря на то что интерактивный режим прост в использовании, я хочу дать несколько советов начинающим, которые следует запомнить:•

  • Вводите только инструкции на языке Python.

  • Системная командная строка и файлы

  • Математический анализ. 3е издание


    Скачать 4.86 Mb.
    Название3е издание
    АнкорМатематический анализ
    Дата04.02.2022
    Размер4.86 Mb.
    Формат файлаpdf
    Имя файлаpython_01.pdf
    ТипДокументы
    #351981
    страница10 из 98
    1   ...   6   7   8   9   10   11   12   13   ...   98
    70
    Глава 2. Как Python запускает программы
    Например, программа с графическим интерфейсом на базе Tkinter мо
    жет быть упакована в исполняемый файл и распространяться как са
    мостоятельная программа на CD или через Интернет. Конечному поль
    зователю не нужно будет устанавливать (и даже знать о том, что это та
    кое) Python, чтобы запустить распространяемую программу.
    Будущие возможности
    В заключение обратите внимание, что модель выполнения, обсуждав
    шаяся здесь, в действительности является лишь отражением текущей реализации интерпретатора Python, но не самого языка программиро
    вания. Например, вполне возможно, что в течение времени, пока эта книга будет сохранять актуальность (едва ли она сохранится у кого
    нибудь через десять лет), появится традиционный компилятор для трансляции исходного текста на языке Python в машинный код. Кро
    ме того, в будущем могут появиться новые варианты реализации ин
    терпретатора и разновидности байткода. Например:

    Недавно появившийся проект Parrot поставил перед собой цель вы
    работать единый формат байткода, единую виртуальную машину и методики оптимизации для различных языков программирова
    ния (подробности на сайте http://www.python.org).

    Stackless Python
    – вариант стандартной реализации CPython, в ко
    торой не производится сохранение состояния на стеке вызовов язы
    ка C. Это упрощает перенос Python на архитектуры с небольшим размером стека и открывает новые возможности программирова
    ния, такие как сопрограммы.

    Новый проект PyPy – попытка реализовать PVM непосредственно на языке Python, что позволит использовать новые приемы про
    граммирования.
    Подобные грядущие схемы реализации могут несколько изменить схе
    му времени выполнения интерпретатора Python, однако скорее всего компилятор байткода останется стандартом еще какоето время. Пе
    реносимость и гибкость байткода во время выполнения – это очень важные качества многих реализаций Python. Более того, добавление в язык конструкций объявления типов с целью обеспечения статиче
    ской компиляции только повредит гибкости, осмысленности, простоте и общему духу языка Python. Изза динамической природы языка Py
    thon любые реализации в будущем скорее всего сохранят некоторые черты нынешней PVM.
    В заключение
    В этой главе была представлена модель выполнения Python (как Py
    thon запускает программы) и исследованы некоторые наиболее извест
    ные разновидности этой модели (динамические компиляторы и тому подобное). Чтобы писать сценарии на языке Python, вам необязатель

    Закрепление пройденного
    71
    но знать внутреннюю организацию интерпретатора и, тем не менее,
    некоторое знакомство с темой этой главы поможет вам понять, как вы
    полняются ваши программы. В следующей главе вы начнете выпол
    нять свой собственный программный код. А теперь – обычные кон
    трольные вопросы.
    Закрепление пройденного
    Контрольные вопросы
    1. Что такое интерпретатор Python?
    2. Что такое исходный программный код?
    3. Что такое байткод?
    4. Что такое PVM?
    5. Назовите две разновидности стандартной модели выполнения Py
    thon.
    6. В чем заключаются различия между CPython, Jython и IronPython?
    Ответы
    1. Интерпретатор Python – это программа, которая выполняет про
    граммы на языке Python.
    2. Исходный программный код – это инструкции, составляющие ва
    шу программу. Он состоит из текста в текстовых файлах, имена ко
    торых обычно имеют расширение .py.
    3. Байткод – это низкоуровневое представление программы после ее компиляции. Python автоматически сохраняет полученный байт
    код в файлах с расширением .pyc.
    4. PVM – это Python Virtual Machine (виртуальная машина Python) –
    механизм Python, который интерпретирует компилированный про
    граммный код.
    5. Psyco, Shedskin и фиксированные двоичные файлы – все это разно
    видности модели выполнения.
    6. CPython – это стандартная реализация языка. Jython и IronPython реализуют поддержку программирования на языке Python в среде
    Java и .NET, соответственно; они являются альтернативными ком
    пиляторами языка Python.

    3
    Как пользователь запускает программы
    Итак, настал момент запустить какойнибудь программный код. Те
    перь, когда вы получили представление, как программы запускаются,
    вы готовы приступать к программированию на языке Python. С этого момента я буду предполагать, что интерпретатор Python уже установ
    лен у вас на компьютере, в противном случае вернитесь к предыдущей главе, а также прочитайте приложение A, где приводятся советы по установке и настройке интерпретатора.
    Существует несколько способов заставить интерпретатор Python вы
    полнить программу, которую вы написали. В этой главе рассматрива
    ются все наиболее часто используемые приемы запуска программ. По
    путно вы узнаете, как вводить программный код в интерактивном ре
    жиме, как сохранять его в файлах, которые можно будет запускать из командной строки, щелчком на ярлыке и импортировать в виде моду
    лей. Мы также поговорим об интегрированных средах разработки с гра
    фическим интерфейсом, таких как IDLE и Eclipse, и о многом другом.
    Если вам требуется лишь узнать, как запускать программы на языке
    Python, прочитайте раздел, где описывается ваша платформа, и пере
    ходите к главе 4. Однако не пропускайте материал, где описывается импортирование модулей, потому что эти сведения являются основой для понимания архитектуры программ на языке Python. Я также ре
    комендую просмотреть разделы с описанием IDLE и других интегриро
    ванных сред разработки, чтобы вы представляли, какие инструмен
    тальные средства доступны, когда приступите к разработке более слож
    ных программ.
    Интерактивный режим
    Пожалуй, самый простой способ запускать программы на языке Py
    thon – это вводить инструкции непосредственно в командной строке

    Интерактивный режим
    73
    интерпретатора. Запустить эту командную строку можно разными способами – в интегрированной среде разработки, в системной консо
    ли и т. д. Предположим, что интерпретатор установлен в вашей систе
    ме как выполняемая программа, тогда самый универсальный способ запустить интерактивный сеанс работы с интерпретатором заключает
    ся в том, чтобы ввести команду python, без аргументов, в командной строке вашей операционной системы. Например:
    % python
    Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win 32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    После ввода слова «python» командная оболочка вашей операционной системы запустит интерактивный сеанс работы с интерпретатором Py
    thon (символ «%» здесь означает строку приглашения к вводу, он не должен вводиться вами). Понятие системной командной строки явля
    ется универсальным, но как получить доступ к ней, зависит от исполь
    зуемой платформы:

    В операционной системе Windows команду python можно ввести в консоли DOS (она же –
    Командная Строка (Command Prompt), которую обычно можно найти в разделе
    Стандартные (Accessories), меню Все про
    граммы (Programs), которое появляется после щелчка на кнопке Пуск
    (
    Start)), или в диалоге Пуск

    Выполнить… (Start
    →Run…).

    В операционных системах UNIX, Linux и Mac OS X эту команду можно ввести в командной оболочке или в окне терминала (напри
    мер, в xterm или в консоли, где запущена командная оболочка, та
    кая как ksh или csh).

    В других операционных системах можно использовать похожие или какието специфичные для платформы устройства. Например,
    чтобы запустить интерактивный сеанс в PalmPilots, можно щелк
    нуть на ярлыке Python.
    Если вы не включили путь к каталогу установки Python в переменную окружения PATH, вам вместо простого слова «python» может потребо
    ваться ввести полный путь к выполняемой программе. В операционной системе Windows можно попробовать ввести команду C:\Python25\python
    (для версии 2.5); в UNIX и в Linux: /usr/local/bin/python (или /usr/bin/
    python
    ). Или перед вводом команды «python» можно перейти в каталог,
    куда был установлен интерпретатор Python (для этого в операционной системе Windows, например, можно выполнить команду cd c:\python25).
    Интерактивный сеанс работы с интерпретатором Python начинается с вывода двух строк информационного текста (которые я буду опус
    кать в примерах, для экономии места), затем выводится приглашение к вводу >>>, когда интерпретатор Python переходит в режим ожидания ввода новой инструкции или выражения. При работе в интерактивном режиме результаты выполнения ваших инструкций будут выводиться

    74
    Глава 3. Как пользователь запускает программы сразу же вслед за строкой с приглашением >>>. Ниже приводятся ре
    зультаты выполнения двух инструкций print:
    % python
    >>> print 'Hello world!'
    Hello world!
    >>> print 2 ** 8
    256
    Вам пока также не стоит вникать в детали инструкций print, приве
    денных здесь (изучение синтаксиса мы начнем в следующей главе).
    В двух словах, эта инструкция вывела текстовую строку и целое чис
    ло, как видно в строках, которые были напечатаны ниже строк с при
    глашением к вводу >>>.
    При работе в интерактивном режиме, как показано в этом примере, вы можете вводить любое число команд Python, и каждая из них будет вы
    Тестирование программного кода
    в интерактивном режиме
    Благодаря тому, что программный код выполняется немедлен
    но, интерактивный режим превращается в замечательный инст
    румент для выполнения экспериментов с конструкциями язы
    ка. Интерактивная оболочка часто будет использоваться в этой книге для демонстрации небольших примеров. Самое первое,
    что вы должны запомнить: если вы чувствуете, что не понимае
    те, как работает тот или иной участок программного кода на языке Python, запустите интерактивный сеанс и попробуйте вве
    сти этот фрагмент, чтобы посмотреть, что произойдет. В этом случае вы едва ли чтонибудь испортите (чтобы стать опасным для системы, вы должны хорошо знать системные интерфейсы).
    Интерактивная оболочка может использоваться для тестирова
    ния программного кода, сохраненного в файлах, что избавит вас от необходимости вводить значительные объемы программного кода при работе в интерактивном режиме (ведь программный код,
    который здесь вводится, не сохраняется). В интерактивном режи
    ме вы можете импортировать файлы модулей и тестировать функ
    циональные возможности, которые они предоставляют, вводя вы
    зовы функций в строке с приглашением к вводу. В более широком понимании интерактивная оболочка – это инструмент для тести
    рования программных компонентов независимо от их происхож
    дения – вы можете вводить вызовы функций из связанных биб
    лиотек на языке C, создавать экземпляры классов Java в интер
    претаторе Jython и многое другое. Интерпретатор поддерживает возможность проведения экспериментов и исследований при про
    граммировании, и вы найдете это удобным, начав работать с ним.

    Интерактивный режим
    75
    полняться сразу же после ввода. Более того, поскольку в интерактив
    ном сеансе результаты выражений, которые вы вводите, печатаются ав
    томатически, вам необязательно явно вводить «print» после подсказки:
    >>> lumberjack = 'okay'
    >>> lumberjack
    'okay'
    >>> 2 ** 8
    256
    >>> # Для завершения сеанса используйте комбинацию клавиш CtrlD или CtrlZ
    %
    В этом примере две последние введенные строки являются выражения
    ми (lumberjack и 2 ** 8), и результаты их вычисления отображаются ав
    томатически. Чтобы завершить работу интерактивного сеанса, как по
    казано в данном примере, и вернуться в системную командную строку,
    в UNIXподобной системе нажмите комбинацию клавиш
    CtrlD, а в сис
    темах MSDOS и Windows – комбинацию
    CtrlZ. В интегрированной сре
    де разработки IDLE, которая будет рассматриваться ниже, нужно либо нажать комбинацию клавиш
    CtrlD, либо просто закрыть окно.
    В приведенных примерах мы сделали немногое – всего лишь ввели не
    сколько инструкций print, одну инструкцию присваивания и несколь
    ко выражений, подробнее о которых мы поговорим позднее. Главное, на что следует обратить внимание, – интерпретатор немедленно выполняет введенный программный код, сразу же после нажатия клавиши
    Enter.
    Например, когда в строке приглашения к вводу >>> была введена пер
    вая инструкция print, результат (строка) был немедленно выведен на экран. Нам не потребовалось создавать файл с исходным текстом про
    граммы и для выполнения программного кода не понадобилось снача
    ла компилировать и компоновать его, что является обычным делом при использовании таких языков программирования, как C или C++.
    Как будет показано в последующих главах, при работе с интерактив
    ной оболочкой вы можете также вводить многострочные инструкции –
    такие инструкции будут выполняться только после ввода всех строк.
    Помимо ввода команды python в окне командной оболочки, вы также можете запустить подобный интерактивный сеанс в главном окне ин
    тегрированной среды разработки IDLE или, в Windows, выбрав пункт
    Python (commandline) (Python (командная строка)) в меню кнопки Пуск
    (
    Start), как показано на рис. 2.1. В любом случае вы получите строку приглашения к вводу >>> с одинаковыми функциональными возмож
    ностями – инструкции выполняются сразу же после ввода.
    Использование интерактивного режима
    Несмотря на то что интерактивный режим прост в использовании, я хо
    чу дать несколько советов начинающим, которые следует запомнить:

    Вводите только инструкции на языке Python. Прежде всего, следует запомнить, что в интерактивном режиме допускается вводить только

    76
    Глава 3. Как пользователь запускает программы программный код на языке Python, никаких системных команд.
    В программном коде Python предусмотрены возможности выполнять системные команды (например с помощью os.system), но они не отли
    чаются простотой по сравнению с непосредственным вводом команд.

    Инструкция print необходима только в файлах. Поскольку в инте
    рактивном режиме интерпретатор автоматически выводит резуль
    таты вычисления выражений, вам не требуется вводить полные ин
    струкции print при работе в интерактивном режиме. Это замеча
    тельная особенность, но она часто приводит пользователей в заме
    шательство, когда они приступают к созданию программного кода в файлах: чтобы программный код в файлах мог чтото выводить,
    вы должны использовать инструкции print, потому что в этом слу
    чае результаты выражений уже не выводятся автоматически. За
    помните, вы должны использовать инструкцию print в файлах, но не в интерактивном режиме.

    Не используйте отступы в интерактивном режиме (пока). При вво
    де программ на языке Python, как в интерактивном режиме, так и в текстовых файлах, вы обязаны начинать все не вложенные ин
    струкции с позиции 1 (то есть с самого начала строки). Если вы не будете следовать этому правилу, Python может вывести сообщение
    «SyntaxError» (синтаксическая ошибка). Пока мы не подойдем к главе 10, все инструкции, которые вам придется вводить, будут не вложенными, поэтому пока данное правило распространяется на все, что будет вводиться. То же относится и к классам Python. Веду
    щий пробел в строке вызывает сообщение об ошибке.

    Будьте внимательны, когда строка приглашения к вводу изменяет!
    ся на строку ввода составной инструкции. Нам не придется сталки
    ваться с составными (многострочными) инструкциями до главы 10,
    но вы должны знать, что при вводе второй и каждой последующей строки составной инструкции в интерактивном режиме строка при
    глашения к вводу может изменяться. В простом окне с командной строкой приглашение к вводу >>> во второй и каждой последующей строке изменяется на ..., в интегрированной среде IDLE все стро
    ки, кроме первой, автоматически получают отступы. В любом слу
    чае, чтобы в интерактивном режиме сообщить интерпретатору, что вы приступаете к вводу многострочной инструкции, необходимо начинать ее ввод с ввода пустой строки (делается это нажатием кла
    виши
    Enter в начале строки). В файлах, в противоположность этому,
    пустые строки интерпретатором игнорируются.
    Почему это имеет важное значение, вы узнаете в главе 10. А пока,
    если вдруг случится, что вы получите приглашение к вводу ... или пустую строку при вводе программного кода, это скорее всего будет означать, что какимто образом вам удалось заставить интерактив
    ную оболочку Python думать, что вы начали ввод многострочной инструкции. Попробуйте нажать комбинацию
    CtrlC или клавишу
    Enter, чтобы вернуться к основному приглашению к вводу. Пригла

    Системная командная строка и файлы
    77
    шения >>> и ... также могут изменяться (они доступны во встроен
    ном модуле sys), но в последующих листингах я буду предполагать,
    что они не изменялись.
    Системная командная строка и файлы
    Хотя интерактивная командная оболочка является прекрасным инст
    рументом для проведения экспериментов, тем не менее у нее есть один существенный недостаток: программы, которые вы вводите во время интерактивного сеанса, исчезают сразу же после того, как интерпрета
    тор Python выполнит их. Программный код, который вводится в инте
    рактивном режиме, нигде не сохраняется, поэтому вы не сможете за
    пустить его еще раз, не введя код с самого начала. Операция копирова
    ния и вставки, а также возможность повторного выполнения коман
    ды, могут оказать некоторую помощь, но они не способны принести пользу, когда вы начнете писать большие программы. Чтобы восполь
    зоваться операцией копирования и вставки, вы должны исключить из копирования строку приглашения к вводу, результаты, которые про
    грамма выводит в процессе выполнения, и т. д.
    Чтобы хранить программы длительное время, вам необходимо сохра
    нять программный код в файлах, которые обычно называются модуля+
    ми
    . Модули – это простые текстовые файлы, содержащие инструкции на языке Python. Как только такой файл будет создан, вы можете пред
    ложить интерпретатору Python выполнить инструкции в нем столько раз, сколько пожелаете. Такой файл можно запустить на выполнение разными способами – из командной строки системы, щелчком на яр
    лыке файла, из интегрированной среды IDLE и другими способами.
    Независимо от выбранного вами способа интерпретатор Python будет выполнять весь программный код в модуле от начала до конца всякий раз, когда вы будете его запускать.
    Терминология в этой области может несколько изменяться. Напри
    мер, файлы модулей часто называются программами на языке Python,
    где под программой понимается последовательность заранее написан
    ных инструкций, сохраненных в файле для обеспечения возможности многократного использования. Файлы модулей, которые запускаются на выполнение непосредственно, иногда называют сценариями – этим неофициальным термином обозначаются файлы программ верхнего уровня. Термин «модуль» зарезервирован для обозначения файлов,
    которые могут импортироваться другими файлами. (Подробнее о про
    граммах «верхнего уровня» и об импорте будет говориться чуть ниже.)
    Как бы вы ни называли их, в следующих нескольких разделах исследу
    ются способы запуска программного кода, который был сохранен в фай
    лах модулей. В этом разделе вы узнаете, как запускать файлы наиболее типичным способом: перечислением их имен в команде python при за
    пуске из системной командной строки. В качестве первого упражне
    ния откройте привычный для вас текстовый редактор (например, vi,

    1   ...   6   7   8   9   10   11   12   13   ...   98


    написать администратору сайта