Home > Backend Development > Python Tutorial > Why Does My Python Function Return `None` Instead of the Expected Output?

Why Does My Python Function Return `None` Instead of the Expected Output?

DDD
Release: 2024-11-28 11:00:10
Original
428 people have browsed it

Why Does My Python Function Return `None` Instead of the Expected Output?

Understanding Python Function Return Behavior

Why does this simple Python function return None at its end?

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
Copy after login

Explanation:

In Python, every function returns a value. If a return statement is not explicitly provided, the default return value is None. In this case, the function printmult() does not specify any return value, so it defaults to returning None.

Expectation:

It is possible to mistakenly expect that printmult(30) will behave differently than it actually does. Here's a clarification:

  • printmult(30) evaluates the function printmult() with the argument 30.
  • The function prints the multiplication table of 30 from 1 to 10, resulting in the output "30 60 90 120 150 180 210 240 270 300 " (without the quotes).
  • However, the function does not return any specific value.
  • print() then takes the return value of printmult(30) (which is None) and prints it, resulting in no visible output since None has no string representation.

Recommendation:

To avoid this behavior, explicitly return a desired value at the end of the function. For instance, you could return the last element of the multiplication table:

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
    return n * 10

print(printmult(30))  # Now returns 300
Copy after login

The above is the detailed content of Why Does My Python Function Return `None` Instead of the Expected Output?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template