PCEP Control Flow, Loops, Lists and Logic Practice Question
A developer writes a recursive function to compute factorial, but it causes a RecursionError. Which of the following is the most likely cause?
⚠ Common exam trap
Python Institute often tests the concept that a missing base case is the direct cause of infinite recursion and RecursionError, not other common mistakes like incorrect return types or parameter issues.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The function lacks a base case to stop recursion
A recursive function must have a base case that stops further recursive calls. Without it, the function calls itself indefinitely until the recursion limit is exceeded, raising a RecursionError. In Python, the default recursion limit is 1000, and exceeding it triggers this error.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The function returns a string instead of an integer
Why it's wrong here
Returning a string causes a TypeError when arithmetic is attempted, not a RecursionError, which arises from exceeding the interpreter's recursion depth limit. It is tempting because type errors are frequent in recursive code, and this would be the cause if the function returned before recursing.
- ✓
The function lacks a base case to stop recursion
Why this is correct
Without a base case, the factorial function calls itself indefinitely, exhausting the call stack until Python raises RecursionError. This satisfies the stem's scenario, since the missing terminating condition is the direct cause of unbounded recursive calls.
- ✗
The function modifies a global variable incorrectly
Why it's wrong here
Global variable modification does not consume stack frames, so it cannot trigger a RecursionError. It is tempting because incorrect global state is a common bug class, and this would be the culprit if the function produced wrong results while still terminating normally.
- ✗
The function uses too many parameters
Why it's wrong here
Parameter count affects neither stack depth growth nor the interpreter's recursion limit, so it cannot produce a RecursionError. It is tempting because excessive parameters often indicate poor design, and this would matter if the issue were readability or argument-passing errors rather than runaway recursion.
Go deeper
Related to this question
About these practice questions
Courseiva writes every PCEP question from scratch — 482 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PCEP practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCEP exam.