So You Need PCAP-30-02 Exam Questions
The Python Institute's PCAP-30-02 certification is the intermediate-level exam that sits between the basic PCAT and the professional PCPP-1. It covers Python fundamentals in more depth than the entry exam: exception handling, file manipulation, collections, modules and packages, regular expressions, generators, decorators, lambda expressions, and the standard library. If you're going to take it, you need to actually know this material, not just memorize answers. The exam is designed to catch people who haven't read the documentation. Legitimate practice material comes from a few sources. The Python Institute itself publishes an official sample exam on their website. It's short — about five questions — but the format and difficulty level match the real thing. Third-party practice tests from sites like Whizlabs or ExamCompass are decent for volume, though some of the wording can drift from the actual exam style. Books like "Python Certification Guide" by Andrew Swift include chapter quizzes that align reasonably well with the exam objectives. Reddit's r/Python has threads where people share their real exam experiences, which is more valuable than most dump sites because it tells you what types of questions actually show up and how tricky they get. I won't link to any "exam dumps" because those are usually outdated, riddled with errors, and violate the Python Institute's NDA. Using them will get your certification revoked. I've seen people get that happen. It's not a rumor.
Let me walk through how I actually prepare for this exam. The study plan I use isn't complicated. First, I go through the official exam blueprint published by the Python Institute and mark every topic. Then I build a small project for each major area. For the collections module, I write code that uses defaultdict, Counter, OrderedDict, and deque in a single script. For exceptions, I create a file-processing utility that handles FileNotFoundError, PermissionError, and custom exceptions with proper finally and else blocks. Doing this takes about two to three weeks if you study part-time. One specific problem I ran into when studying was around the map() and filter() functions with None as the first argument. The real exam had a question asking what happens when you call map(None, [1, 2, 3], [4, 5]). The answer is that None acts as the identity function when passed as the first argument to map, which means it returns the arguments as a tuple. I remember this one because I'd never used map with None before. I wrote a quick test script, ran it in my local Python 3.11 environment, and confirmed the behavior. Practice tests online didn't cover this edge case at all. It cost me points on the first time I took the exam. Another counter-intuitive thing about this exam is how much it tests on object identity versus equality. Beginners think == and is are the same thing. They're not. The exam loves to ask whether two variables point to the same object or just have equal values. Here's a nuance most people miss: small integers are interned by CPython, so a = 256; b = 256; a is b will evaluate to True, but a = 300; b = 300; a is b might be False depending on how you write the code. On a single line like a = b = 300, CPython's optimizer makes them the same object, but on separate lines they aren't. The exam doesn't tell you it's testing CPython implementation details. It just asks the question and expects you to know the answer.
File handling is another area where the exam gets tricky. They'll give you code that opens a file without a context manager and asks what happens if an exception occurs between open() and close(). If you don't catch it, the file stays open. That's the answer they want. Many people skip this because they always use with statements in real code, but the exam deliberately avoids context managers in its questions to test whether you understand what's happening under the hood. Here's what I recommend as a concrete study schedule: Week one covers data types and operators. String methods, type conversion, operator precedence, and the walrus operator. Week two is control flow and functions, including default mutable arguments, which is a classic trap. The exam has asked about this exact scenario multiple times. Week three is modules, packages, and the standard library, especially os, sys, re, json, datetime, and random. Week four is object-oriented programming, focusing on inheritance, method resolution order, and dunder methods. Week five is dedicated to practice exams and reviewing weak areas.
Get the Full Details

The exam itself is 40 multiple-choice questions, 90 minutes, with a passing score of 70%. Questions are sometimes multi-part, meaning you might see a snippet of code and then three sub-questions about it. Read every sub-question carefully. I once missed a question because I answered the first sub-question correctly and then stopped reading. The next two sub-questions had different correct answers based on modified code. A few topics that consistently trip people up: the difference between list comprehension and generator expression memory usage, how *args and kwargs actually bind at runtime, and the behavior of __init__ versus __new__. If you're weak on any of these, write test code for them. Don't just read about them. CPython's behavior on these is specific enough that reading someone else's explanation won't stick. Also, the exam covers Python 3.8+ features. That includes positional-only parameters, the dataclass module, and match-case statements if your version is recent enough. Check your exam date and confirm which Python version your question bank targets. Some older practice materials still reference Python 3.6 syntax and that'll confuse you.
I should mention that the registration fee is around $395, and you can retake it if you fail. The wait time between retakes is typically a few days to a couple of weeks depending on the testing center. Some people take it twice because the first time they're still figuring out the question format. Don't be one of those people. Spend at least two solid weeks preparing before you book the exam. The content isn't hard if you know it. The trick is knowing enough to not second-guess yourself on the borderline questions. One last thing that helped me: I printed the exam objectives and marked each one with a confidence rating after studying. Anything below 80% confidence got an extra pass. This narrowed my focus and saved time instead of vaguely reviewing everything. It cut my final review phase from about five days down to two.