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

    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 комментария