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
DDDOriginal
2024-11-28 11:00:10431browse

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

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

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!

Statement:
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