Home βΊ Problems βΊ Function returning nothing
Function returning nothing
π§ Predict the output Topic: functions Difficulty: easy Free
What this problem practises
Function bugs are mostly about names and values: positional argument order, default parameters evaluated once at definition time, local versus global scope, and the implicit None returned whenever a function has no return.
This is an output-prediction problem: read the snippet carefully and write down exactly what it prints before anything runs. These questions are interview staples because they test whether you know the language rules, or merely recognise their syntax.
Difficulty: easy β the fix or the trick is normally a single line, and a careful read should be enough.
The challenge
The code runs in PyDebugβs in-browser compiler. Open the problem, run the snippet, watch the exact error or output, and keep iterating until it is right. Signed-in solves count toward XP and your daily streak.
The snippet
The interactive editor pre-fills exactly this code β read it, then submit your prediction:
def greet(name):
print(f"Hi {name}")
result = greet("Zoya")
print(result)Understand the rule
A function without a return statement β or one whose return sits in a branch that didn't execute β hands back None. print(add(2, 3)) can therefore print None even though the function computed 5 internally and printed nothing wrong. Predicting these snippets means separating what a function prints from what it returns; the two are unrelated channels.
How to trace it
- Find every return in the function; if none executes on this input, the call evaluates to None.
- Distinguish print inside the function (goes to the screen immediately) from the return value (goes to the caller).
- Follow the call site: is the result assigned, printed, or discarded?
- A bare 'return' with no expression also yields None β same as falling off the end.
Common wrong fixes
- Assuming the last computed expression is returned automatically, like Ruby or Rust.
- Writing result = print(x) β print itself returns None, so result is None.
- Seeing correct printed output from inside the function and concluding the return value must be correct too.
Rule to remember
No executed return means the caller receives None. What a function prints and what it returns are independent β trace them separately.
π§© Learning path: Functions
Problem 6 of 12 in this path. Work them in order β each one builds on the rule before it.
β Default parameter valuesNext in path: Multiple return values β
More functions problems
Keep going
- Output-prediction strategies β how to predict tricky snippets without running them.
- Browse every functions problem in this topic.
- Common Python errors and what they actually mean, plus the Python glossary for any term used on this page.