PCAP Exam

Syllabus

(Taken from here)

Exam block #1: Modules and Packages (12%)

Objectives covered by the block (6 items)

  • import variants; advanced qualifiying for nested modules

    Comment: os.path

  • dir(); sys.path variable

  • math: ceil(), floor(), trunc(), factorial(), hypot(), sqrt(); random: random(), seed(), choice(), sample()

  • platform: platform(), machine(), processor(), system(), version(), python_implementation(), python_version_tuple()

  • idea, __pycache__, __name__, public variables, __init__.py

  • searching for modules/packages; nested packages vs directory tree

Exam block #2: Exceptions (14%)

Objectives covered by the block (5 items)

  • except, except:-except; except:-else:, except (e1,e2)

  • the hierarchy of exceptions

  • raise, raise ex, assert

  • event classes, except E as e, arg property

  • self-defined exceptions, defining and using

Exam block #3: Strings (18%)

Objectives covered by the block (8 items)

  • ASCII, UNICODE, UTF-8, codepoints, escape sequences

  • ord(), chr(), literals

  • indexing, slicing, immutability

  • iterating through,

  • concatenating, multiplying, comparing (against strings and numbers)

  • in, not in

  • .isxxx(), .join(), .split()

  • .sort(), sorted(), .index(), .find(), .rfind()

Exam block #4: Object-Oriented Programming (34%)

Objectives covered by the block (12 items)

  • ideas: class, object, property, method, encapsulation, inheritance, grammar vs class, superclass, subclass

  • instance vs class variables: declaring, initializing

  • __dict__ property (objects vs classes)

  • private components (instance vs classes), name mangling

  • methods: declaring, using, self parameter

  • instrospection: hasattr() (objects vs classes), __name__, __module__, __bases__ properties

  • inheritance: single, multiple, isinstance(), overriding, not is and is operators

  • constructors: declaring and invoking

  • polymorphism

  • __name__, __module__, __bases__ properties, __str__() method

  • multiple inheritance, diamonds

Exam block #5: Miscellaneous (List Comprehensions, Lambdas, Closures, and I/O Operations) (22%)

Objectives covered by the block (9 items)

  • list comprehension: if operator, using list comprehensions

  • lambdas: defining and using lambdas, self-defined functions taking lambda as as arguments; map(), filter();

  • closures: meaning, defining, and using closures

  • I/O Operations: I/O modes, predefined streams, handles; text/binary modes

  • open(), errno and its values; close()

  • .read(), .write(), .readline(); readlines() (along with bytearray())

Sample Questions