Python

Когда делать функцию def через return, а когда нет

Только начал учить Python на приктике когда делается через return, а когда он не нужен
Вот пример вывод одинаковый только что во 2 случае,вывод в скобках

def choice(car = 'Opel', model = 'Signum'):
print (car, model)
choice('BMW', 'Serias Grand')


def choice(car = 'Opel', model = 'Signum'):
return car, model
x = choice = 'BMW', 'Serias Grand'
print(x)
VD
Vladislav Danchuk
115
В данном случае разницы никакой, но возвращаемое может надобиться в последующей обработке. Если значения return формируются в теле функции. н-р
def find_brand(model): if model=="Signum" : return "Opel"
...
Правильно будет print (choice( 'BMW', 'Serias Grand' ))
Юрий Дроняев
Юрий Дроняев
58 740
Лучший ответ
print это вообще только для "обучающейся аудитории", ибо какую пользу даст в реальных программах команда которая что-то там печатает в консоль?
Функция предназначена для того чтобы передавать в код результат каких-либо вычислений, поэтому в настоящих программах только return. Никаких print.
А в совсем мегакрутых программах вообще yield... Вот это понятие даже для меня не самое простое для понимания...
Vladislav Danchuk Понял
спасибо
Return - это значит ты завершаешь функцию и что-то возвращаешь.

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


 def last_digit(num): 
d = int(num) % 10
return d

print(last_digit(1234))

print - это просто функция вывода в консоль. Я не буду её клеймить, как это делает Молот. Она позволяет не только в консоль выводить, а ещё в файл, да и в консоли бывает иногда полезно что-то вывести.

Я считаю, что нет каких функций чисто для новичков, каждая функция может когда-то пригодиться.

А yield - это всякие генераторы

Подытожу. Return сам по себе ничего выводить не должен, выводит print. Return лишь возвращает значение функции.

А твою функцию я бы переделал. В чём её смысл? Что она выбирает? Она просто выводит фирму и модель? Тогда она вообще не нужна. Ты можешь просто вывести при помощи print
когда функция - это процедура то return не нужен
в зависимости от логики самой программы
AP
A2R Pro
2 424