What This Lesson Covers
3 min- The PCEP exam format — duration, structure, what's asked.
- A 10-question mock exam covering the four PCEP topic areas.
- Identifying your weak spots from the mock.
- A study plan for the real exam.
PCEP-30-02 is the Python Institute's entry-level certification. Around 30 questions in 40 minutes; pass mark 70%. Covers basics, data types, control flow, functions, exceptions. We've covered all of it across Levels 1, 2 and 3.
The Exam Format
5 minExam: PCEP-30-02 (Certified Entry-Level Python Programmer) Duration: 40 minutes Questions: ~30 (single-choice, multiple-choice, drag-and-drop, gap-fill) Pass mark: 70% Cost: ~USD 59 online Provided: Python Institute / OpenEDG
Topics by approximate weight:
Section 1 · Computer Programming and Python Fundamentals ~15% Section 2 · Data Types, Evaluations, and Basic I/O ~20% Section 3 · Control Flow — Conditional Blocks and Loops ~20% Section 4 · Data Collections — Tuples, Dictionaries, Lists ~25% Section 5 · Functions and Exceptions ~20%
Note: PCEP does not cover OOP, file I/O, or anything from L3-13 onwards. Those are PCAP (the next level up). Today's mock focuses on PCEP topics from your L1-L2 work.
The 10-Question Mock
15 minAim for 8/10 in 15 minutes. Each question is in PCEP style.
Q1 · Operators
print(2 ** 3 ** 2)
What is printed?
- 64
- 512
- 72
- Error
Answer
(B) 512. ** is right-associative. 2 ** 3 ** 2 = 2 ** (3 ** 2) = 2 ** 9 = 512. Not (2 ** 3) ** 2 = 64.
Q2 · Types
x = "3" + str(5) print(x)
What is printed?
- 8
- "35"
- 35
- TypeError
Answer
(C) 35. str(5) is "5". "3" + "5" is concatenation → "35". print shows it without quotes. The string "35" looks like a number when printed.
Q3 · Conditional
x = 0 if x: print("yes") elif x == 0: print("zero") else: print("no")
What is printed?
- yes
- zero
- no
- nothing
Answer
(B) zero. if x: tests truthiness; 0 is falsy. So elif fires. Note the difference between if x and if x == 0.
Q4 · For-loop with range
for i in range(2, 10, 3): print(i, end=" ")
What is printed?
- 2 5 8
- 2 5 8 11
- 3 6 9
- 2 3 5 8
Answer
(A) 2 5 8. range(start, stop, step) goes from 2, in steps of 3, stopping before 10. So 2, 5, 8.
Q5 · Lists and slicing
lst = [1, 2, 3, 4, 5] print(lst[-2:])
What is printed?
- [4, 5]
- [5, 4]
- [3, 4, 5]
- [1, 2, 3]
Answer
(A) [4, 5]. -2: means "from the second-from-the-end to the end". Last two items, in original order.
Q6 · Dict access
d = {"a": 1, "b": 2} print(d.get("c", 0) + d.get("a"))
What is printed?
- 1
- 0
- 3
- KeyError
Answer
(A) 1. d.get("c", 0) returns 0 (default). d.get("a") returns 1. 0 + 1 = 1. .get never raises.
Q7 · Functions and scope
x = 10 def f(): x = 20 return x print(f(), x)
What is printed?
- 20 10
- 20 20
- 10 10
- 10 20
Answer
(A) 20 10. Inside the function, x = 20 creates a new local variable. The outer x is unchanged. The function returns 20; the global x prints as 10.
Q8 · Tuples
t = (1, 2, 3) t[1] = 5
What happens?
- t becomes (1, 5, 3)
- SyntaxError
- TypeError
- t becomes (5, 5, 5)
Answer
(C) TypeError. Tuples are immutable. 'tuple' object does not support item assignment. You can't change a tuple in place. Make a new tuple instead.
Q9 · Exceptions
try: x = int("hello") except ValueError: print("bad") except Exception: print("other") else: print("ok") finally: print("done")
What does it print?
- bad
- bad / other / done
- bad / done
- bad / ok / done
Answer
(C) bad / done. int("hello") raises ValueError; the first except catches it ("bad"). else only runs if the try block succeeded — it didn't, so it's skipped. finally always runs ("done").
Q10 · List comprehension
nums = [1, 2, 3, 4, 5] result = [n * 2 for n in nums if n % 2 == 1] print(result)
What is printed?
- [2, 4, 6, 8, 10]
- [2, 6, 10]
- [1, 3, 5]
- [4, 8]
Answer
(B) [2, 6, 10]. Keep only odd numbers (1, 3, 5). Double each. Result: 2, 6, 10.
Tally your score
8/10 or higher: you're ready for the real exam. 6-7: review weak topics, retake in a week. ≤ 5: spend a fortnight on the lessons in the area you missed most.
Diagnose Your Weak Areas
5 minFor every question you missed, work out what to review:
Q Topic If you missed it, revisit… 1 Operator precedence PY-L1-04 (operators) 2 Type concatenation PY-L1-05 (strings) 3 Truthiness, if/elif PY-L1-08, PY-L1-09 4 range(start, stop, step) PY-L1-13 5 List slicing PY-L1-18 6 dict.get with default PY-L2-05 7 Local vs global scope PY-L1-27, PY-L1-29 8 Tuple immutability PY-L2-03 9 try/except/else/finally PY-L2-28 10 List comprehensions PY-L2-02, PY-L3-21
If a single topic gave you trouble, work back through the linked lesson and redo its homework. If two or three were related, you may have a category gap — spend a half-hour redoing that whole section.
A Two-Week Study Plan
8 minIf you scored 7+ on the mock, you can sit the exam now. If not:
Day Focus
1-2 Revisit each lesson where you missed a mock question.
Redo its homework from scratch (don't peek).
3-4 Solve 20 small Python puzzles. Reach for Codewars or
LeetCode "easy" — 8kyu or 7kyu / Easy difficulty.
Aim for one in under 5 minutes.
5 Practice another 10-question mock from PythonInstitute.org.
Time yourself.
6-7 Walk through Python's official tutorial (docs.python.org/tutorial).
Especially the chapters on data structures, functions, errors.
8 Take a free practice test from Python Institute. They publish them.
9-10 Re-do areas where the practice test caught you.
11 Schedule your exam. Pick a weekend morning.
12-13 Light review. Don't cram. Sleep well.
14 Exam day. Read each question twice. Don't second-guess.
You know this stuff. You wrote a Dungeon RPG yesterday.The exam is timed. Skip questions that take more than 60 seconds; come back at the end. The exam software lets you flag questions. Don't lose 10 minutes on a single tricky one and run out of time on five easy ones.
External Resources
3 min- pythoninstitute.org — exam syllabus, sample tests, official scheduling.
- docs.python.org/tutorial — the canonical reference. Chapters 3-9 cover the PCEP scope.
- codewars.com — small Python challenges by difficulty (kyu). Great for sharpening.
- leetcode.com — pick the "easy" category, Python language, 30+ problems.
End of Level 3 · Well Done
5 minOne hundred and forty-four lessons across three levels. From print("hello") in PY-L1-01 to a complete dungeon RPG in PY-L3-47. You can now:
- Write Python that solves real problems.
- Design class hierarchies with inheritance and polymorphism.
- Compose generators into lazy pipelines.
- Think recursively.
- Pick the right algorithm for the input size.
- Build and persist data structures.
- Sit a real entry-level Python certification.
Level 4 is waiting whenever you're ready — JSON, CSV, REST APIs, SQL & SQLite, pandas, matplotlib, Flask + auth. Each lesson moves you closer to job-shaped skills.
But take a breath first. You earned it.
Final word
The goal isn't to memorise Python. The goal is to think clearly about problems and turn that thinking into working code. Three levels in, you can do both. See you in Level 4.