Язык программирования Python

Разница между print и return в Python.

Когда мы знакомимся с функциями Python, часто путаем функцию print() с return или не очень ясно представляем себе их различия.

В этой небольшой статье мы собираемся прояснить эти два понятия и привести примеры, чтобы развеять возникшие вопросы.

print() – это одна из встроенных функций языка.

Как и любая функция, она может принимать определенные аргументы (в частности, print() принимает любое количество аргументов) и выдавать результат.

Return, с другой стороны, является зарезервированным словом, за которым по желанию может следовать выражение или переменная.

Но по сути, они служат совершенно разным целям. print() используется для вывода сообщения на экран консольного приложения, а return – для задания результата (или возвращаемого значения) функции.

Таким образом, return является гораздо более общей операцией, чем print(), но он может использоваться только внутри функций: в коде не может быть return нигде, кроме как внутри функции.

print() может использоваться только в консольных приложениях, поскольку он используется только для вывода сообщения в консоль (терминал, командную строку, интерпретатор команд и т.д.).

Давайте рассмотрим несколько примеров.

# Печатает сообщение на экране. print("Привет, мир.")
Code language: PHP (php)
# Функция, вычисляющая максимум между двумя числами, переданными в качестве аргументов. def num_max(a, b): if a > b: max = a else: max = b return max
Code language: PHP (php)

Давайте рассмотрим последний пример, чтобы ответить на вопрос: почему в конце функции используется return max, а не print(max)?

Чтобы ответить на этот вопрос, давайте создадим аналогичную функцию, но с небольшим изненением :

def num_max_print(a, b): if a > b: max = a else: max = b print(max) # Заменим return на print().
Code language: PHP (php)

Теперь у нас есть две функции: num_max(), которая возвращает или имеет в качестве результата максимальное из двух чисел, указанных нами в качестве аргументов, и num_max_print(), которая не имеет результата (поскольку внутри функции нет возврата), а вместо этого печатает максимальное число на экране.

Напомним, что функции предназначены для того, чтобы избежать повторения кода и обеспечить его повторное использование.

Когда определенные части кода очень часто встречаются в программе Python, удобно абстрагировать их в функции.

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

Давайте рассмотрим, как используются эти две функции, если бы мы хотели вычислить наибольшее число между 7 и 5 и вывести результат на экран.

Используя функцию num_max(), которая ─ помните ─ выводит максимальное число, мы сделаем следующее:

max = num_max(7, 5) print(max) # Печатает 7.
Code language: PHP (php)

Или в упрощенном виде:

print(num_max(7, 5)) # Печатает 7.
Code language: PHP (php)

При использовании функции num_max_print() это будет просто:

num_max_print(7, 5) # Печатает 7.
Code language: PHP (php)

Пока что разница невелика.

Проблема с numero_maximo_print() заключается в том, что она служит только для отображения максимального числа на экране.

Если я всегда вычисляю максимум между двумя числами, что произойдет, если мы захотим узнать максимальное число, чтобы добавить его к другому числу?

Используя первую функцию, мы можем написать:

sum = num_max(7, 5) + 10 # Сохраняет 17 в переменной sum.
Code language: PHP (php)

Напомним, что результат функции “заменяется” в том месте, где появляется ее вызов.

Так, в приведенном выше коде, num_max(7, 5) заменяется на возвращаемое значение (7), а затем результат операции 7 + 10 сохраняется в sum.

Но с num_max_print() мы не можем сделать то же самое, потому что эта функция не имеет результата:

sum = num_max_print(7, 5) + 10

Этот код выдает ошибку, потому что num_max_print(7, 5) заменяется на None (поскольку не имеет результата), а сумма между числом (10) и None недопустима.

Таким образом, использование print() внутри функции слишком сильно ограничивает ее применимость, что противоречит цели функций, которая заключается в повторном использовании кода.

В то время как num_max() позволяет мне вычислить максимум между двумя числами и затем решить, что делать с этим результатом, num_max_print() служит только для вывода максимума на экран.

С помощью первой функции я могу, чтобы привести еще несколько примеров, сохранить результат в файл:

f = open("max.txt", "w") f.write(str(num_max(7, 5))) f.close()
Code language: JavaScript (javascript)

Или использовать ее в условном выражении:

if num_max(7, 5) % 2 == 0: print("Максимальное число - четное.") else: print("Максимальное число - нечетное.")
Code language: PHP (php)

Или сохранить его в переменной и использовать для разных целей:

max = num_max(7, 5) print("Максимальное число:", max) sum = max + 10 f = open("max_mas_10.txt", "w") f.write(str(sum)) f.close()
Code language: PHP (php)

Или все остальное, что мы можем сделать с числом. Все это невозможно при использовании функции num_max_print().

Есть определенные случаи, когда print() может быть уместен в функции.

Но, как правило, в функции мы хотим получить результат, а не напечатать его, и это делается через return.

Когда мы только начинаем изучать функции, старайтесь не использовать print() внутри их.

Если функция имеет результат (return), мы всегда можем вывести его после вызова:

print(funcion())
Code language: PHP (php)

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

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