Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать

§3.11. Функции, возвращающие результат

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

>» def getSum(x,y) :

... z = х + у

... return z

>» print getSum(l,3)

4

Как видите, возвращаемое функцией значение воспринимается интерпретатором, как результат выражения, вызывающего эту функцию.

В Питоне функции способны возвращать несколько значений одновременно7. Для примера возьмем функцию вычисления корней квадратного уравнения:

de

f

PrintRoots(a,

b,

c)

\

. . .

D = b**2 - 4

* a

k

с

. . .

import math

7 Кстати, в Паскале и C++ вернуть из функции сразу несколько значений с помощью стандартных средств невозможно. Это еще одно удобство, предоставляемое Питоном.

46

Ревизия: 170

Функции

xl = (

-b +

math.

sqrt(D))

/

2

*

a

х2 = (

-b -

math.

sqrt(D))

/

2

*

a

return

xl,

x2

р

rint Prin

tRoo

ts(l.C

, 0, -1.

0)

(1.

о,

-1.0)

Кроме того, результаты выполнения функции мы можем присваивать сразу нескольким переменным:

>» xl, x2 = PrintRoots (1.0, 0,

-1

0)

>» print "xl =", xl, "\nx2 =",

x2

xl = 1.0

x2 = -1.0

Скорее всего, вы уже догадались, что точно таким же образом значения возвращают и встроенные функции Питона.

47

Ревизия: 170 Компьютерная графика