
Python Institute PCAP - Certified Associate Python Programmer
The Python Institute PCAP – Certified Associate Python Programmer certification validates your ability to perform intermediate-level coding tasks in Python, with a strong focus on object-oriented programming, modules and packages, exception handling, and advanced operations on strings, files, and iterators. It is designed for aspiring programmers and career changers seeking junior-level roles as software developers, data analysts, or testers. Earning PCAP demonstrates that you are fully acquainted with Python 3's primary means to start advanced studies and opens a clear path to the professional level.
531 practice questions · Updated 2026-07-30
PCAP-31 Curriculum
Every domain, objective, and concept the PCAP-31 exam measures.
- import statement
- from-import statement
- import-as statement
- from-import-star statement
- nested module import
- nested module from-import
- dir() function
- sys.path variable
- math module overview
- ceil() function
- floor() function
- trunc() function
- factorial() function
- hypot() function
- sqrt() function
- random() function
- seed() function
- choice() function
- sample() function
- platform() function
- machine() function
- processor() function
- system() function
- version() function
- python_implementation() function
- python_version_tuple() function
- Rationale for user-defined modules
- Module creation and import
- The __pycache__ directory
- The __name__ variable
- Public and private variables in modules
- The __init__.py file
- Module and package search path
- Nested packages vs. directory trees
- try/except basics
- Ordering except branches
- except as syntax
- Grouped exceptions
- Exception hierarchy
- Raising exceptions with raise
- Raising from an exception (raise ex)
- Assertions with assert
- Exception classes and args property
- else clause in exception handling
- finally clause in exception handling
- Defining custom exception classes
- Custom exception constructors
- Raising custom exceptions
- Integrating custom exceptions into existing hierarchy
- Catching custom exceptions
- Chaining custom exceptions
- ASCII encoding
- Unicode and code points
- UTF-8 encoding
- Escape sequences in strings
- ord() function
- chr() function
- String indexing
- String slicing
- String immutability
- String iteration
- String concatenation
- String repetition
- String comparisons
- Membership operators in and not in
- isxxx() methods
- join() method
- split() method
- strip() method family
- index() method
- find() method
- rfind() method
- sorted() for strings
- Class and Object
- Properties (Attributes)
- Methods
- Encapsulation
- Inheritance
- Superclass and Subclass
- Identifying Class Components
- Instance variables
- Class variables
- Accessing instance vs. class variables
- The __dict__ property of objects
- The __dict__ property of classes
- Private components in instances
- Private components in classes
- Name mangling mechanism
- Declaring methods in a class
- Calling methods on instances
- Understanding the self parameter
- Using self to access instance attributes
- Using self to call other methods
- Methods vs. functions
- Introspection basics
- hasattr() for objects
- hasattr() for classes
- Class __name__ property
- Class __module__ property
- Class __bases__ property
- Single inheritance
- Multiple inheritance
- isinstance() function
- Overriding methods
- is / is not operators
- Polymorphism
- Overriding __str__()
- Diamond problem
- Constructor declaration
- Constructor invocation
- Self parameter
- Constructor arguments
- Default constructor
- List comprehension with if condition
- Nested list comprehensions
- Lambda syntax and semantics
- Using lambdas in assignments and calls
- Lambdas as arguments to user-defined functions
- Using map() with lambdas
- Using filter() with lambdas
- Meaning and rationale of closures
- Defining closures
- Using closures
- I/O modes
- Predefined streams
- Handles vs. streams
- Text vs. binary modes
- open() function
- errno and its values
- close() method
- .read() method
- .write() method
- .readline() method
- readlines() method
- bytearray as input/output buffer
Percentages reflect share of the current practice bank, not official exam weightings — no structured per-skill weight is published for PCAP-31, so none is invented.