Зачем нужен return в функциях
Перейти к содержимому

Зачем нужен return в функциях

  • автор:

Как работает функция return в Python?

Оператор return возвращает значение указанное после него, например return 10 вернет 10 .

Пример 1

def example(): return 10 x = example() print(x) # Output 10 

Если указано несколько значений, например return 10, ‘123’ , то вернется кортеж (10, ‘123’)

Пример 2

def example(): return 10, '123' x = example() print(x) # Output (10, '123') 

Пример 3

def example(): return (10, '123') x = example() print(x) # Output (10, '123') 

В случае, когда оператор return не указан в теле функции или указан без значения, тогда вернется значение None

Пример 4

def example(): return x = example() print(x) # Output 

Пример 5

def example(): pass x = example() print(x) # Output 

Для чего нужен return?

Возможно, я невероятно глупый человек (хоть я себя таковым и не считаю), но хоть убейте не могу понять, что делает запись «return 0», «return *какая-то переменная*» и т.д.
Смотрю видео-обучение и там человек написал вот такой код

#include void print (float number) < printf ("Your number is %.2f\n", number); >float del (float a, float b) < float res; if (b != 0) res = a / b; else res = 0; return res; >int main ()

Читал вопросы других людей, и все равно не могу понять. Как я понял, одна из функций записи return — это остановка данной функции (это если написать 0).
Но что делает «return res» во втором куске кода? То есть в переменную res записывается деление числа А и Б. А потом оно куда-то там возвращается.. (Я чайник тот еще, поэтому если можете объяснить, то как можно понятнее). Спасибо.

  • Вопрос задан более трёх лет назад
  • 7368 просмотров

2 комментария

Простой 2 комментария

Зачем нужен return при повторном вызове функции из кода?

Здесь добавлен еще один return в момент перезапуска функции при обнаружении двузначного числа, но зачем там нужен этот return я до сих пор понять не могу, можете мне объяснить, прочему оно работает.

Отслеживать
565 2 2 серебряных знака 16 16 бронзовых знаков
задан 4 мая 2022 в 22:05
Юрий Венгер Юрий Венгер
3 1 1 бронзовый знак

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

4 мая 2022 в 22:43

Странный вопрос. Вы хотите, чтобы функция вернула вычисленное значение, но удивляетесь ‘undefined’, когда лишаете ее такой возможности. Представьте первый вызов peristence(). Если вычисленное значение > 9, то будет следующий рекурсивный вызов, но для текущего вызова это последняя инструкция, и если явно ничего не вернуть, то получим undefined.

4 мая 2022 в 23:03
Всем спасибо! Разобрался.
5 мая 2022 в 5:53

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Чтоб понять, что идет не так в функции persistence давайте мысленно её продебажим:

  1. Подадим ей на вход число 25.
  2. После цикла в newNum будет число 10
  3. 10 больше 9, значит мы будем делать persistence(newNum);
  4. Далее мы снова попадаем в нашу функцию, на вход пришло 10
  5. Считаем произведение, получаем 0
  6. 0 меньше, чем 9, тогда мы возвращаем 0
  7. Вернулись к первому вызову.

И тут вы должны были понять, где проблема. Когда мы вернулись обратно, мы никуда не присвоили значение, полученное из функции.
Мало того, далее мы просто вышли из неё т.к. после вызова persistence(newNum); нет никакого кода.
Однако что же тогда вернет наша функция? А ничего она не вернет, что вы и получили.
Во втором же варианте, когда в newNum хранится число больше 9, оно в любом случае вернет его обратно и так, обратной рекурсией дойдет до места, где вы вызывали функцию.

На случай, если вы всё еще не поняли в чем проблема, попробуйте посидеть с дебагером, поэтапно разбирая что делает код (рекомендую взять число 999 т.к. там много итераций, где можно посмотреть на работу программы и число 24 т.к. там будет всего 1 итерация)

Что такое return в JavaScript?

Оператор return используется в функциях для возвращения данных после выполнения работы функции.

Если функция должна обработать какие-то данные и потом вернуть их, то для возвращения данных необходим оператор return. Рассмотрим его на примере:

function some_test(a, b, c) < // Функция с 3 параметрами return a + b + c; // Функция возвращает результат суммы чисел >var res = some_test(4, 6, 1); console.log(res);

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *