Обработка исключений
Исключение возбуждается, когда интерпретатор обнаруживает ошибку во время выполнения программы. В своей программе мы можем перехватывать такие ошибки и обрабатывать их или просто игнорировать. В последнем случае интерпретатор останавливает выполнение программы и выводит сообщение об ошибке.
»> а = 0.
»> b = 2 / а
Traceback (most recent call last):
File "", line 1, in
ZeroDivisionError: float division
Можно добавить инструкцию try, которая позволит перехватить обнаруженные ошибки (деление на ноль) и продолжить выполнение программы. Стандартная форма инструкции try:
try:
do something except error:
do something else
В пашем примере результатом работы программы а = 0.
try:
b = 2 / а
except ZeroDivisionError:
print ’Division by zero!’
будет строка
Division by zero!
Более общие конструкции обработчиков исключений можно найти в документации по языку.
Функции
Инструкция def, переменное число аргументов, lambda функции, пространство имен в Python.
Инструкция def
Функции в Python являются основными программными структурами, которые обеспечивают структурирование программы и многократное использование программного кода.
Составные инструкция def в языке Python состоит из строки заголовка и следующего за ней блока инструкций:
def name(argl, arg2,..., argN): body
Инструкции def определяются имя функции name, с которым будет связан объект функции, и список из нуля или более аргументов (параметров) argl, arg2, ..., argN. Параметры связаны с объектами, которые передаются в функцию в точке вызова. Тело функции body образует программный код, который выполняется интерпретатором всякий раз, когда производится вызов функции.
В любом месте в теле функции может располагаться инструкция return. Инструкция return является необязательной — при ее отсутствии работа функции завершается, когда поток управления достигает конца тела функции.
Пример создания функции и ее вызова:
def add(x, у): return х + у
print add(2, 3), add(’Poly’, ’morphism’)
Результат работы программы 5 Polymorphism
Вызов осуществляется по имени функции (add), добавляя круглые скобки после ее имени, внутри которых указаны аргументы, значения которых будут присвоены аргументам, указанным в заголовке функции.
При первом обращении к функции проводится сложение простых чисел 2 и 3, во втором случае мы работаем со строками ’Poly’ и ’morphism’, результат есть конкатенация этих строк. Этот пример демонстрирует полиморфизм в языке Python, когда одна и та же функция реализована одинаково для разного типа данных.
Переменное число аргументов
В языке Python реализованы различные возможности определения функции с переменным числом аргументов. Наиболее простой и важный способ состоит в установлении значения по умолчанию для одного или нескольких аргументов.
Заданные по умолчанию значения аргумента используются в том случае, если при вызове функции соответствующий аргумент не был определен. Для этого необходимо присвоить соответствующему аргументу некоторое значение в определении функции. Если во время вызова функции не будет передан аргумент, то переменная примет присвоенное ей но умолчанию значение.
Результат работы программы
def f(x, а=1):
return а*х**2
print f (2), f (2, 2)
будет 4 8.
В Python имеется возможность определить функцию таким образом, чтобы ее можно было вызвать с произвольным числом аргументов. В этом случае аргументы будут переданы в виде кортежа. Перед переменным числом аргументов может присутствовать произвольное число обычных аргументов.
Используем, например, функция расчета суммы элементов списка
def lsum(*args):
smm = О
for arg in args: smm += arg return smm
print lsum(), lsum(l), lsum(l, 2, 3)
Результатом работы будет
0 16
Возможна также передача аргументов аргументов по ключам с использованием конструкции def name(**args), когда аргументы будут собраны в новый словарь, который можно обрабатывать обычными инструментами, предназначенными для работы со словарями.
Do'stlaringiz bilan baham: |