Content · Programming · Python

Python Why a Function Returns None Unexpectedly

A function returns None when execution reaches the end without running a return statement, or when return has no expression. This often causes surprises when callers expect calculated values.

2 views Published Oct 17, 2026 Updated Oct 18, 2026 Admin

This guide explains why a function returns none unexpectedly through a focused Python example. You will learn the behavior to expect, why it matters in a real program, and how to recognize the common mistakes before applying it in your own project.

What You Will Learn


A function returns None when execution reaches the end without running a return statement, or when return has no expression. This often causes surprises when callers expect calculated values.

When and Why to Use It


The following example focuses on a practical use of Why a Function Returns None Unexpectedly.

Step-by-Step Example


def calculate_price(price, discount):
    adjusted = price * (1 - discount)

result = calculate_price(100, 0.1)
print(result)

def calculate_price_fixed(price, discount):
    return price * (1 - discount)
print(calculate_price_fixed(100, 0.1))

Understanding the Example


The first function computes a local value but returns None implicitly. The corrected function returns 90.0.

Expected Output


None
90.0

Important Behavior and Edge Cases


A print inside the function does not change its return value. Check every relevant branch in conditional functions.

Try It Yourself


Write a grading function with two conditional branches and ensure each expected path returns a result.

Common Beginner Mistakes


  • A print inside the function does not change its return value. Check every relevant branch in conditional functions.
  • Confusing a returned value with printed output, or failing to verify a function’s behavior with different input values.
  • Skipping the practice step and assuming the example covers every input. Test at least one normal case and one edge case relevant to this topic.

Key Takeaways


  • A function returns None when execution reaches the end without running a return statement, or when return has no expression.
  • The first function computes a local value but returns None implicitly.
  • Apply the technique deliberately, checking its documented input requirements and failure behavior before integrating it into a larger project.
Share this resourceSend this page to someone who may find it useful.