Синтаксичні помилки (syntax errors)

Навіть якщо у програмі Python знайде хоча б незначну друкарську помилку, він тут же виведе повідомлення про те, де він на неї наткнувся, і завершить роботу. Таку програму він не зможе виконати і тому відкине. У перші тижні вашої практики розробки програм ви, швидше за все, проведете досить багато часу, розшукуючи синтаксичні помилки. У міру накопичення досвіду ви допускатиме їх все рідше, а знаходити – все швидше.

Помилки виконання (runtime errors)

Другий тип помилок зазвичай виникає під час виконання програми (їх прийнято називати винятковими ситуаціями або, коротко – виключеннями, по-англійськи exceptions). Такі помилки мають іншу причину. Якщо в програмі виникає виключення, то це означає, що по ходу виконання відбулося щось непередбачене: наприклад програмі було передано некоректне значення, або програма спробувала розділити якесь значення на нуль, що неприпустимо з погляду дискретної математики. Якщо операційна система надсилає запит на негайне завершення програми, то також виникає виключення. Але в простих програмах це достатньо рідкісне явище, тому можливо, з ними ви зіткнетеся не відразу.

Семантичні помилки (semantic errors)

Третій тип помилок – семантичні помилки. Першою ознакою наявності у вашій програмі семантичної помилки є те, що вона виконується успішно, тобто без виняткових ситуацій, але робить не те, що ви від неї чекаєте.

У таких випадках проблема полягає в тому, що семантика написаної програми відрізняється від того, що ви мали на увазі. Пошук таких помилок – завдання нетривіальне, оскільки доводиться переглядати результати роботу програми і розбиратися, що програма робить насправді.

Довідкова система

В Python визначено множину функцій, що дозволяють вирішувати різні завдання. Деякі з них згруповані за призначенням і винесені в окремі модулі. Як визначати, для чого призначена та або інша функція, оскільки часто досить важко здогадатися про призначення функцій по їх назві.

Для спрощення роботи програміста в Python передбачена вбудована змінна __doc__ (починається і закінчується парами символів підкреслення), у якій зазвичай зберігається мінімальна довідкова інформація:

>>> print str.__doc__

str(object)-> string

Return а nice string representation of the object.

If the argument is а string, the return value is the same object.

>>>

Функція str() «представилася» і вивела інформацію про себе: які параметри вона приймає, якого типу значення повертає, і коротко «розповіла», що вона робить.

Починаючи з версії 2.2, в Python з'явилася довідкова система, реалізована у вигляді функції help(). Дана функція як параметр приймає ім'я будь-якого об'єкту (зокрема, модуля або функції) і виводить довідкову інформацію про нього.

>>> help(tuple)

Help on class tuple in module __builtin__:

Вихід з довідкової системи здійснюється клавішею [Q].

 

Коментарі в програмах

В Python коментарі позначаються символом # – рядки, що починаються з цього символу, просто ігноруються інтерпретатором і ніяк не впливають на її трансляцію і виконання. Недопускається використання перед символом # лапок:



>>> а = “Це рядок” #Це коментар

>>> b = “#Це вже НЕ коментар”

Крім того, коментарями варто забезпечувати і функції. Для цього передбачений ще один спосіб багаторядкового коментування, воно починається і закінчується трьома подвійними лапками ”””

def printTwice(value):

"""Описание функції printTwice()

Дана функція набуває значення і виводить його двічі, розділивши пропуском."""

print value, value

Як бачите, коментарі з описом функцій повинні знаходитися відразу після заголовка функції. Вони полягають з подвійні лапки три рази і можуть займати декілька рядків. Більш того, в Python передбачена можливість виведення цих коментарів. Для цього досить скористатися вбудованою змінною __doc__ (починається і закінчується парами символів підкреслення):

>>> print printTwice.__doc__

Опис функції printTwice()

Дана функція набуває значення і виводить його двічі, розділивши пропуском.

Цей же коментар виведе команда довідкової системи Python help(printTwice).

Створення скриптів

Не дивлячись на зручність використання інтерактивного режиму роботи, часто потрібно зберегти початковий програмний код для подальшого використання. В такому разі готуються файли з програмним кодом, які передаються інтерпретатору на виконання. По відношенню до мов програмування, що інтерпретуються, часто початковий код називають скриптом. Файли з кодом на Python зазвичай мають розширення *.py.

Підготувати скрипти можна в середовищі IDLE. Для цього, після запуску середовища в меню потрібно вибрати команду File à New Window (Crtl + N), відкриється нове вікно.

Потім бажано відразу зберегти файл з розширенням *.py. командою FileàSave As. За замовченням, файл буде збережено в корні C:\Python26. Після того, як код буде написано, слід знов зберегти файл.

Увага: якщо набирати код, не зберігши файл на початку, то не буде здійснюватися підсвічування синтаксису.

Для запуску скрипту потрібно виконати команду меню Run à Run Module (F5). Після цього в першому вікні (де "працює" інтерпретатор) з'явиться результат виконання коду.

Насправді скрипти можна писати в будь-якому текстовому редакторі (бажано, щоб він підтримував підсвічування синтаксису мови Python). Також існують спеціальні програми для розробки, що надають додаткові можливості і зручності.

Запускати підготовлені файли можна не тільки в IDLE, але і в консолі за допомогою команди python адрес/имя_файла.

Крім того, існує можливість налаштувати виконання скриптів за допомогою подвійного кліка по файлу (у Windows дана можливість присутня спочатку).

 

Поняття модуля

Працюючи в інтерактивному режимі інтерпретатора Python неможливо писати великі програми, оскільки після виходу з інтерпретатора визначення функцій “зникають” безслідно. А хотілося б мати можливість написати кілька функцій в одному файлі і потім мати можливість звертатися до них з інших програм (принцип повторного використання коду). Така можливість в Python існує. Це технологія модулів, тобто текстових файлів, що містять в собі який-небудь набір функцій(бажано об'єднаних за якою-небудь ознакою). Більшість функцій стандартної бібліотеки Python реалізована саме в модулях.

Модулі можуть містити в собі окрім визначень функцій і деякий виконуваний код. Цей код не входить в жодну функцію і виконується інтерпретатором, коли даний модуль підключається ключовим словом import.

Python поставляється з множиною програмних модулів, покликаних полегшувати роботу програміста. Ці модулі є стандартними для всіх реалізацій Python, тому використання стандартних функцій допомагає зробити код сумісним з іншими платформами.

В Python є також значна кількість вбудованих функцій, що забезпечують найнеобхіднішу роботу. У бібліотеці Python є також модулі, які специфічні для конкретної операційної системи і забезпечують високоефективний доступ до її ресурсів. Використання таких бібліотек повністю виключено, якщо ви хочете писати переносимий код.

Модулі підключаються до програми (або іншого модуля) з допомогою оператора import, після якого імена з простору імен модуля стають доступними.

Які саме імена стають доступні, визначає оператор import: варіант import module робить доступним рівне одне ім'я - ім'я модуля module, та зате через це ім'я можна використовувати всі глобальні імена модуля у вигляді module.name.

У варіанті from module import name з модуля імпортується вказане ім'я або список імен. У варіанті from module import * з модуля імпортуються всі імена. Хоча автор модуля може обмежити цей список, а у відсутності такого обмеження не імпортуються імена, що починаються з підкреслення, - вважається, що це внутрішні імена модуля, що не входять до його публічного інтерфейсу.

Імпортування модулів

import <модуль1> [, <модуль2> ]* Під’єднує зовнішні модулі.
from <модуль> import <имя1> [, <имя2> ]* Імпортування імен (функцій, класів, змінних тощо) з <модуля>.
from <модуль> import * Імпортує всі імена з <модуля>, за виключенням імен, що починаються з символу "_".

 









Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь