Добро пожаловать в раздел "Основы программирования"

сайта "Try Objective-c - программирование для начинающих"!

  Здесь простым и доступным языком представлен материал по основам программирования.

  Если вы никогда раньше не программировали, то приступать к изучению абсолютно любого языка программирования следует именно с данных основ программирования - в противном случае понимание многих вещей в дальнейшем будет довольно затруднительно.

  Сам процесс обучения программированию довольно трудоемок, но если у вас есть цель - то у вас все получится!

  Заучивать весь представленный материал нет необходимости. Главное - чтобы вы понимали саму суть здесь изложенного.

» » 1.30 Функции которые возвращают результат - return

Категория:

Информация к новости
  • Просмотров: 8427
  • Автор: Midav
  • Дата: 9-11-2012, 08:56
9-11-2012, 08:56

1.30 Функции которые возвращают результат - return



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

В языке программирования СИ такого разделения нет - там оба этих вида называются функциями.

Для чего нам нужна ситуация, когда функция возвращает нам результат своей работы?
Это необходимо для того, чтобы мы могли использовать его для дальнейших расчетов в нашей программе.


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

Для того, чтобы сохранить результат работы функции применяется специальная команда return

Рассмотрим пример:
def getSumma(x,y):
	rezult = x + y
	return rezult

Разберем код программы:
- Определяем функцию getSumma и передаем ей в качестве аргументов два параметра - x и y
- Рассчитываем сумму переданных значений rezult = x + y
- Возвращаем обратно результат return rezult

Вызвав функцию командой
getSum(3,3)

Мы передали в нашу функцию два числа 3 и 3, которые были сложены друг с другом.

Получаем результат
6


Этот результат мы можем присвоить какой либо переменной для использования его далее.
sum = getSum(3,3)


Теперь в переменной sum находится значение 6 и оно никуда не пропадет - мы можем использовать его при необходимости далее.

Последние две строчки кода нашей программы можно оформить в виде одной строки таким образом:
return x + y


Присваивание результата вычислений можно оформить так же как мы это делали только что:
sum = getSum(3,3)


Вывод на печать результата вычислений можно оформить несколькими способами:
1
Передача значений в функцию и получения результата вычислений сразу же
getSum(3,3)


2
После присваивания результата вычислений переменной, мы вызываем эту переменную и видим то значение, которое там записано.
sum


3
Печать результата вычислений функции getSum передавая ей необходимые значения непосредственно в функции вывода данных print()
print(getSum(5,5))


4
Печать значения переменной sum используя функцию print()
print(sum)



Вот еще один пример с несколькими переменными

Определим функцию с тремя параметрами и вернем значение их суммы:
def abc(a,b,c):
	return a + b + c


Передадим функции три числовых значения и выведем на печать результат:
abc(10,20,30)

60


Присвоим результат вычислений переменной q и выведем его на печать:
q = abc(11,21,31)

q
63


Используем для вывода на печать функцию print() и передадим через нее же данные для расчета:
 print(abc(40,50,60))

150



А теперь сделаем так:
Создадим три переменные со своими значениями:
num1 = 12
num2 = 13
num3 = 14


И передадим значения этих переменных в виде аргументов в нашу функцию для расчета их суммы:
abc(num1,num2,num3)

Получим результат:
39


Обратите внимание, что при передаче параметров через переменные они (имена этих переменных) НЕ ОБЯЗАНЫ называться так же как и в самой функции!
То есть:
- в нашей функции аргументы, которые получает функция называются как - a, b, с
- а передаем мы значения переменных с именами num1, num2, num3


Главное, чтобы соответствовало количество передаваемых аргументов и тип данных.
Программа видит, что мы передаем необходимые значения в функцию abc и передаем мы именно ТРИ параметра и в результате мы получаем требуемое вычисление.


Если вы попытаетесь передать только ДВА параметра ИЗ ТРЕХ, то получите ошибку:
abc(num1,num2)

Traceback (most recent call last):
  File "", line 1, in <module />
    abc(num1,num2)
TypeError: abc() takes exactly 3 arguments (2 given)

В которой говорится, что требуется передать ТРИ параметра, а не ДВА

То же самое произойдет если вы попытаетесь передать в функцию данные разного типа.

Создадим переменную строкового типа со значением void
num4 = 'void'


А теперь передадим в нашу функцию abc такие значения:
abc(num1,num2,num4)

Как видите два первых значения имеют тип int (целое число), а третий параметр имеет тип - str - строка
И что получаем?
Ошибку!
Traceback (most recent call last):
  File "", line 1, in <module />
    abc(num1,num2,num4)
  File "", line 2, in abc
    return a + b + c
TypeError: unsupported operand type(s) for +: 'int' and 'str'


В которой и говорится о неподдерживаемом типе операнда...

Теперь посмотрим более сложный вариант с возвратом нескольких значений.
Используем для этого функцию myFunction которая принимает три значения и выполняет с каждым из значений определенную математическую операцию и вернем все три значения этих переменных

определим переменные a,b,c
a = 2
b = 3
c = 4


Создадим нашу функцию:

def myFunction(a,b,c):
	a = a + 10
	b = b **2 # возведение в степень 2
	c = c - 10
	return a,b,c


Данный результат можно присвоить новым переменным для дальнейшего использования:
x, y, z = myFunction(a,b,c)


Эта запись говорит нам о том, чтобы:
- переменной x было присвоено значение переменной a
- переменной y было присвоено значение переменной b
- переменной z было присвоено значение переменной c


Проверим это введя в интерпретатор Питона:
x

12


y

9


 z

-6


Можно и сразу присвоить значения новым переменным с передачей необходимых значений в нашу функцию:
x, y, z = myFunction(5,6,7)


x

15


y

36


z

-3

Метки к статье: функция, return

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищенной ссылки Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *