Використання інтерпретатора python - підручник з мови python 2
Використання інтерпретатора Python
запуск інтерпретатора
Інтерпретатор Python після установки розташовується, зазвичай, по шляху / usr / local / bin / python - на тих комп'ютерах, де цей шлях доступний. Додавання каталогу / usr / local / bin до шляху пошуку Unix-шелла (змінна PATH) дозволить запустити інтерпретатор набором команди
прямо з шелла. Оскільки вибір каталогу, в якому буде жити інтерпретатор, здійснюється за його установці, то можливі й інші варіанти - порадьтеся з вашим Python-гуру або системним адміністратором. (Наприклад, шлях / usr / local / python теж популярний в якості альтернативного розташування.)
На машинах з ОС Windows, інсталяція Python зазвичай здійснюється в каталог C: \ Python26. але і він може бути змінений під час установки. Щоб додати цей каталог до вашого шляху пошуку, ви можете набрати у вікні DOS наступну команду, у відповідь на запрошення:
При наборі символу кінця файлу (Ctrl-D в Unix, Ctrl-Z в Windows) у відповідь на основне запрошення інтерпретатора, останній буде змушений закінчити роботу з нульовим статусом виходу. Якщо це не спрацює - ви можете вийти з інтерпретатора шляхом введення наступних команд:
Особливості редагування рядків в інтерпретаторі не надаються, як правило, надто складними. Ті, хто встановив інтерпретатор на машину Unix, потенційно мають підтримку бібліотеки GNU readline. забезпечує вдосконалене інтерактивне редагування і збереження історії. Найшвидший, напевно, спосіб перевірити, чи підтримується розширене редагування командного рядка, полягає в натисканні Ctrl-P у відповідь на перше отримане запрошення Python. Якщо ви почуєте сигнал - значить вам доступно редагування командного рядка - тоді зверніться до Додатку про Інтерактивному редагуванні вхідних даних за описом клавіш. Якщо на ваш погляд нічого не відбулося або відобразився символ ^ P - редагування командного рядка недоступно - видаляти символи з поточного рядка можливо буде лише використанням клавіші Backspace.
Інтерпретатор поводиться подібно Шеллу Unix: якщо він викликаний, коли стандартне введення прив'язаний до пристрою tty - він зчитує і виконує команди в режимі діалогу; будучи викликаним з ім'ям файлу в якості аргументу або з файлом, призначеним на стандартне введення - він Новомосковскет і виконує сценарій з цього файлу.
Інший спосіб запустити інтерпретатор - директива python -cкоманда [arg]. - при її використанні черзі виконуються інструкції (-ция) з команди (як при використанні опції -c Unix-шелла). У зв'язку з тим, що інструкції Python часто містять пробіли або інші спеціальні для шелла символи, рекомендується укладати команди повністю в одинарні лапки.
Деякі модулі Python виявляються корисними при використанні їх в якості сценаріїв. Вони можуть бути запущені в цьому виді командою python -mмодуль [arg]. - таким чином виповнюється вихідний файл модуля (як сталося б, якби ви ввели його повне ім'я в командному рядку).
При використанні файлу сценарію іноді корисно мати можливість запустити сценарій і потім увійти в інтерактивний режим. Це може бути зроблено через вказівку параметра -i перед ім'ям сценарію. (Цей спосіб не спрацює, якщо сценарій зчитується зі стандартного введення - по тій самій причині, яка описана в попередньому абзаці).
передача аргументів
У разі, якщо інтерпретатора відомі ім'я сценарію і додаткові аргументи, з якими він викликаний - всі вони передаються сценарієм в змінної sys.argv. представляє собою список (list) рядків. Довжина (length) списку - мінімум, одиниця; якщо не передані ні ім'я сценарію, ні аргументи - то sys.argv [0] містить порожній рядок. Коли в якості імені сценарію переданий '-' (означає стандартний ввід), sys.argv [0] встановлюється в '-'. Якщо використовується директива -cкоманда - sys.argv [0] містить '-c'. У разі, якщо використовується директива -mмодуль - то sys.argv [0] встановлюється рівним повного імені модуля по розташуванню. Опції, виявлені після поєднань -cкоманда або -mмодуль не обробляються інтерпретатором Python, але залишаються в змінної sys.argv. щоб забезпечити можливість відстеження в самій команді або в модулі.
інтерактивний режим
Якщо команди зчитуються з tty - кажуть, що інтерпретатор знаходиться в інтерактивному режимі (режимі діалогу). В цьому режимі он запрошує до введення наступної команди, відобразивши основне запрошення (зазвичай це три знака «більше-ніж» - >>>); в той же час, для продовжують рядків виводиться допоміжне запрошення (за замовчуванням - три точки -.). Перед виведенням першого запрошення інтерпретатор відображає вітальне повідомлення, що містить номер його версії і позначку про права копіювання:
Продовжують рядки використовуються у випадках, коли необхідно ввести багаторядкова конструкцію. Погляньте, наприклад, на наступний оператор if:
Інтерпретатор і його оточення
Обробка помилок
У разі появи помилки інтерпретатор виводить повідомлення про помилку, завершуючи його стеком викликів. В інтерактивному режимі он знову повертається в стан запрошення для введення команд; якщо введення відбувається з файлу - інтерпретатор виходить з ненульовим статусом, відразу після роздруківки стека викликів. (Винятки, оброблювані в блоці except оператора try в цьому контексті не зважають помилками.) Деякі помилки виключно фатальні і викликають собою примусове завершення роботи з ненульовим статусом - це може бути застосовано до внутрішніх протиріч мови і до деяких випадків браку пам'яті. Всі повідомлення про помилки виводяться в стандартний потік помилок (error stream). Звичайний висновок виконуваних команд направляється в стандартний висновок.
За допомогою кнопок переривання процесу (зазвичай Ctrl-C або DEL), у відповідь на запрошення в основному або допоміжному режимі, скасовує введення і повертає вас до основного запрошення. Символ переривання, набрану під час виконання будь-якої команди породжує виключення KeyboardInterrupt. яке, в свою чергу, може бути перехоплено оператором try.
Виконувані скрипти на Python
На Unix-системах сімейства BSD сценарії на Python можуть бути зроблені виконуваними, також як і шелл-сценарії, шляхом додавання наступного рядка:
також можна писати так:
Виконуваний режим (або дозвіл на виконання) може бути встановлений сценарієм використанням команди chmod:
$ Chmod + x myscript.py
У систем з операційною системою Windows немає такого поняття, як виконуваний режим. Установник Python автоматично пов'язує файли .py з файлом python.exe. таким чином подвійний клік на файлі Python запустить його в вигляді сценарію. Розширення може бути і .pyw в разі, якщо вікно консолі (яке, зазвичай, відображається) при запуску скрипта пригнічується.
Кодування вихідних файлів
Якщо використовується цей опис - все символи в цьому файлі будуть розпізнаватися як такі, що відповідну кодування і з'явиться можливість вживати символи Unicode із потрібним кодуванням. Список можливих кодувань представлений в Довіднику по бібліотеці - в розділі, що описує модуль codecs.
Наприклад, для написання таких символів в кодуванні Unicode, як, наприклад, знак валюти Євро - може бути використана кодування ISO-8859-15. де знак Євро має порядковий номер 164. Цей сценарій виведе значення 8346 (місце в таблиці Unicode, відповідне символу Євро) і потім виконає вихід:
Інтерактивний файл запуску
Якщо ви використовуєте Python інтерактивно - часто буває зручним виконати деякі стандартні команди перед запуском інтерпретатора. Ви можете зробити це, встановивши змінну оточення з ім'ям PYTHONSTARTUP рівній імені файлу, що містить ваші команди запуску. Спосіб схожий з використанням файлу .profile в Unix-короби.
Цей файл Новомосковскется тільки в інтерактивних сесіях, але не у випадку зчитування команд зі сценарію, і не варто робити, якщо / dev / tty призначений як незалежне джерело команд (який в інших випадках поводиться подібно інтерактивним сесій). Файл виповнюється в тому ж просторі назв, що і виконувані команди - тому об'єкти і імпортовані модулі, які він визначає можуть вільно використовуватися в інтерактивній сесії. Також в цьому файлі ви можете змінити запрошення: sys.ps1 і sys.ps2.
Якщо ви хочете прочитати додатковий файл запуску з поточного каталогу - ви можете використовувати код на кшталт:
Якщо ви хочете використовувати файл запуску в сценарії - вам потрібно буде вказати це явно: