@DedInside0
Учу Python самостоятельно.

Зачем нужен return, когда есть print?

def func(x, y):
    if x > y:
        return x
    elif x == y:
        return 'Числа равны.'
    else:
        return y
print(func(3, 4))


Зачем нужен return, если можно написать:
def func(x, y):
    if x > y:
        print(x)
    elif x == y:
        print('Числа равны.')
    else:
        print(y)

func(3, 4)


Разница только в том, что мы в первом случае пишем: print при вызове функции, а в самой функции нет. А во втором пишем: print в функции, но при вызове нет. Только в этом разница или есть ещё какая-то?
  • Вопрос задан
  • 354 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Если нужно просто вывести на экран результат - разницы нет, в данном примере. Если нужно в дальнейшем использовать значение, возвращенное функцией, то, конечно, нужен return. Допустим, как тут, если нужно сравнить два числа, и вернуть из них большее, чтобы затем работать с ним дальше, можем сделать так:
def func(x, y):
    if x > y:
        return x
    elif x == y:
        return 'Числа равны.'
    else:
        return y

max_num = func(3,4)

И в результате в переменной max_num будет наше наибольшее число (ну, либо текст). В данном примере несовсем понятно, конечно.

Ну вот допустим у нас есть встроенная функция max, которая возвращает максимальное значение из переданных параметров, нечто похожее на то, что сделали вы. Для более наглядного примера я бы рассмотрел random.choice()

Предположим, у нас есть список элементов и нам надо из него выбрать случайный элемент и работать с ним дальше. Мы вызываем random.choice(), который через return вернет нам этот случайный элемент и мы будем с ним работать дальше. Например, использовать его как часть текста.
greetings = ['Привет', 'Hello', 'Здравствуйте']

greeting = random.choice(greetings)

print(f'{greeting}, master')


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

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

Если надо будет найти максимальный элемент и использовать его в дальнейшей работе, то с таким кодом -
def func(x, y):
    if x > y:
        print(x)
    elif x == y:
        print('Числа равны.')
    else:
        print(y)

max_num = func(3,4)
print('Максимальное число -', max_num)

получите None в ответе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Зачем нужен return, когда есть print?

Странный вопрос, вообще странный.
Есть функция. Вы передаете в нее параметры, функция с ними что-то делает и возвращает результат с помощью return. Далее вы результат этой функции можете передать в качестве параметра к другой функции.
Ответ написан
@StivenHolland
Программист-самоучка
Смотрите: print() - это отдельная функция, которая выводит результат, но бывают случаи, когда результат функции нужно сохранить в переменной, допустим. В таком случае делают return функции - За функцией закрепляется значение. В предложенном вами варианте нет разницы в использовании обоих вариантов!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы