Python print function return

Printing and returning are fundamentally different concepts in Python.

  • Printing means displaying a value in the console. To print a value in Python, you call the print() function. After printing a value, you can no longer use it.
  • Returning is used to return a value from a function and exit the function. To return a value from a function, use the return keyword. You can use the returned value later by storing it in a variable.

Example

Here is an example of a function that prints a value. If you call this function, you can see a greeting in the console:

def greet(name): print("Hello", name) greet("Alice")

Here is an example of a function that returns a value. When you call this function with a name input, the function gives you back a value. The returned value in this case is a greeting with the name. You can store the return value into a variable and then do what you want with it.

def greet(name): return "Hello " + name greeting = greet("Alice")

Notice how running this piece of code does not show anything in the console! This is because the function returns a value. It does not print it. But you can print the stored value by calling the print() function on the greeting variable:

def greet(name): return "Hello " + name greeting = greet("Alice") print(greeting)

Why Print Is Used So Much?

The reason why printing is used so often in tutorials is that it’s the easiest way to see what’s behind a value. Besides, it’s easy to copy the code and run it on a console and instantly see a result.

Читайте также:  Python p value scipy

Printing is great for visualizing the values you deal with in your program. Otherwise, you cannot know if your code is doing what it’s supposed to do. If a function returns a value, you need to print the value to truly know what it is before you start using the function.

Make Sure to Understand the Difference!

Please, make sure to read your course materials thoroughly. The difference between print and return is something that isn’t explicitly stated in a beginner course. This is because the difference is so fundamental that the course creators won’t even bother mentioning about it. When you understand these concepts return and print better, you realize how silly a comparison it even is :). Comparing return and print in Python is like comparing having a car vs looking at pictures of a car.

Conclusion

Printing and returning are completely different things in Python. As a beginner, you may be confused by these two because they are used in a very similar way in many examples.

  • Printing means showing a value in the console.
  • Returning means giving back a value from a function.

When a function returns a value, you can store it to a variable and do whatever with it. But if a function only prints a value, it doesn’t return it. Thus, you cannot use it anywhere.

Источник

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

Язык программирования 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)

Источник

Python print function return

Last updated: Feb 21, 2023
Reading time · 3 min

banner

To print the output of a function:

  1. Make sure to return a value from the function.
  2. Call the function and store the result in a variable.
  3. Use the print() function to print the result.
Copied!
def example(name): return 'site: ' + name result = example('bobbyhadz.com') print(result) # 👉️ 'site: bobbyhadz.com'

print output of function

Notice that the function uses a return statement to return a value.

This is necessary because all functions that don’t explicitly return a value implicitly return None in Python.

Copied!
# 👇️ this function prints a message and returns None def example(name): print('site: ' + name) result = example('bobbyhadz') print(result) # 👉️ None

The function in the example doesn’t use the return statement, so it implicitly returns None .

The print function takes one or more objects and prints them to sys.stdout .

# The print() function returns None

Note that the print() function returns None , so don’t try to store the result of calling print in a variable.

Copied!
website = print('bobbyhadz.com') print(website) # 👉️ None

print function returns none

Instead, store the value in a variable and pass the variable to the print() function.

Copied!
website = 'bobbyhadz.com' print(website) # 👉️ bobbyhadz.com

To print the output of a function, you have to call the function, store the result in a variable and print the result.

Copied!
def do_math(a, b): return a + b result = do_math(12, 13) print(result) # 👉️ 25

We called the function with parentheses, providing a value for each of its required parameters and called the print() function with the output.

# Common sources of None values

If you are getting a None value when printing the output of the function, the most common sources of None values are:

  1. Having a function that doesn’t return anything (returns None implicitly).
  2. Explicitly setting a variable to None .
  3. Assigning a variable to the result of calling a built-in function that doesn’t return anything.
  4. Having a function that only returns a value if a certain condition is met.

Make sure to return a value in every branch of your function.

Copied!
def get_name(a): if len(a) 5: return a result = get_name('bobbyhadz.com') print(result) # 👉️ None

return value in every branch of your function

The if statement in the function only runs if the provided argument has a length of less than 5 .

To get around this, we can return a default value if the condition is not met, e.g. an empty string, 0 , or any other value that suits your use case.

Copied!
def get_name(a): if len(a) 5: return a return '' # 👈️ return empty string if condition is not met result = get_name('bobbyhadz.com') print(result) # 👉️ ''

Now the function is guaranteed to return a value regardless if the condition is met.

# Some built-in functions return None

User-defined functions that don’t explicitly use the return statement to return a value return None .

Copied!
# 👇️ this function prints a message and returns None def example(name): print('site: ' + name) result = example('bobbyhadz') print(result) # 👉️ None

built in functions returning none

However, many built-in methods also return None , e.g. sort() , append() and extend() .

Copied!
a_list = ['bobby', 'hadz', 'com'] result = a_list.sort() print(result) # 👉️ None

The sort() method returns None , so the variable stores a None value.

There is a convention in Python for methods that mutate an object in place (directly) to return None .

In this case, we can’t print the output of the function when we call it.

Instead, we should print the object after it has been mutated.

Copied!
a_list = ['bobby', 'hadz', 'com'] a_list.sort() print(a_list) # 👉️ ['bobby', 'com', 'hadz']

We first called the sort() method. The method sorted the list in place and returned None .

Then, we printed the sorted list.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

Оцените статью