Представьте, что оператор печати вызывает побочный эффект , он заставляет вашу функцию записывать некоторый текст пользователю, но он не может быть использован другая функция.
Я попытаюсь объяснить это лучше с помощью нескольких примеров и нескольких определений из Википедии.
Вот определение функции из Википедии
Функция в математике связывает одну величину, аргумент функции, также известный как вход, с другой величиной, значением функции, также известной как выход.
Подумайте об этом на секунду. Что это значит, когда вы говорите, что функция имеет значение?
Это означает, что вы можете заменить значение функции обычным значением! (Предполагая, что два значения имеют одинаковый тип значения)
Зачем тебе это спрашивать?
А как насчет других функций, которые могут принимать значения того же типа, что и вход ?
def square(n):
return n * n
def add_one(n):
return n + 1
print square(12)
# square(12) is the same as writing 144
print add_one(square(12))
print add_one(144)
#These both have the same output
Существует причудливый математический термин для функций, которые зависят только от своих входных данных для получения своих выходных данных: ссылочная прозрачность. Опять определение из Википедии.
Ссылочная прозрачность и ссылочная непрозрачность являются свойствами частей компьютерных программ. Выражение называется прозрачным по ссылкам, если его можно заменить его значением без изменения поведения программы
Может быть, немного сложно понять, что это значит, если вы новичок в программировании, но я думаю, что вы получите это после некоторых экспериментов.
В общем, вы можете делать такие вещи, как print, в функции, а также иметь оператор return в конце.
Просто помните, что когда вы используете return, вы в основном говорите: «Вызов этой функции аналогичен записи возвращаемого значения»
Python фактически вставит возвращаемое значение для вас, если вы откажетесь вводить свое собственное, оно называется «Нет», и это специальный тип, который просто ничего не значит, или нуль.