Python Mauritius UserGroup
py standard

the need for a standard concerning the evaluation of python knowledge

how much python do you know? having a checklist enables one to know. also enables companies to assess candidates required and if candidates fit.

core - basics

1: Control and Evaluations (25%)

  • basic concepts: interpreting and the interpreter, compilation and the compiler, language elements, lexis, syntax and semantics, Python keywords, instructions, indenting

  • literals: Boolean, integer, floating-point numbers, scientific notation, strings

  • operators: unary and binary, priorities and binding

  • numeric operators: ** * / % // + -

  • bitwise operators: ~ & ^ | << >>

  • string operators: * +

  • Boolean operators: not and or

  • relational operators ( == != > >= < <= ), building complex Boolean expressions

  • assignments and shortcut operators

  • accuracy of floating-point numbers

  • basic input and output: input(), print(), int(), float(), str() functions

  • formatting print() output with end= and sep= arguments

  • conditional statements: if, if-else, if-elif, if-elif-else

  • the pass instruction

  • simple lists: constructing vectors, indexing and slicing, the len() function

  • simple strings: constructing, assigning, indexing, slicing comparing, immutability

  • building loops: while, for, range(), in, iterating through sequences

  • expanding loops: while-else, for-else, nesting loops and conditional statements

  • controlling loop execution: break, continue

2: Data Aggregates (25%)

  • strings in detail: ASCII, UNICODE, UTF-8, immutability, escaping using the \ character, quotes and apostrophes inside strings, multiline strings, copying vs. cloning, advanced slicing, string vs. string, string vs. non-string, basic string methods (upper(), lower(), isxxx(), capitalize(), split(), join(), etc.) and functions (len(), chr(), ord()), escape characters

  • lists in detail: indexing, slicing, basic methods (append(), insert(), index()) and functions (len(), sorted(), etc.), del instruction, iterating lists with the for loop, initializing, in and not in operators, list comprehension, copying and cloning

  • lists in lists: matrices and cubes

  • tuples: indexing, slicing, building, immutability

  • tuples vs. lists: similarities and differences, lists inside tuples and tuples inside lists

  • dictionaries: building, indexing, adding and removing keys, iterating through dictionaries as well as their keys and values, checking key existence, keys(), items() and values() methods

3: Functions and Modules (25%)

  • defining and invoking your own functions and generators

  • return and yield keywords, returning results, the None keyword, recursion

  • parameters vs. arguments, positional keyword and mixed argument passing, default parameter values

  • converting generator objects into lists using the list() function

  • name scopes, name hiding (shadowing), the global keyword

  • lambda functions, defining and using

  • map(), filter(), reduce(), reversed(), sorted() functions and the sort() method

  • the if operator

  • import directives, qualifying entities with module names, initializing modules

  • writing and using modules, the name variable

  • pyc file creation and usage

  • constructing and distributing packages, packages vs. directories, the role of the file

  • hiding module entities

  • Python hashbangs, using multiline strings as module documentation

4: Classes, Objects, and Exceptions (25%)

  • defining your own classes, superclasses, subclasses, inheritance, searching for missing class components, creating objects

  • class attributes: class variables and instance variables, defining, adding and removing attributes, explicit constructor invocation

  • class methods: defining and using, the self parameter meaning and usage

  • inheritance and overriding, finding class/object components

  • single inheritance vs. multiple inheritance

  • name mangling

  • invoking methods, passing and using the self argument/parameter

  • the init method

  • the role of the str method

  • introspection: dict, name, module, bases properties, examining class/object structure

  • writing and using constructors

  • hasattr(), type(), issubclass(), isinstance(), super() functions

  • using predefined exceptions and defining your own ones

  • the try-except-else-finally block, the raise statement, the except-as variant

  • exceptions hierarchy, assigning more than one exception to one except branch

  • adding your own exceptions to an existing hierarchy

  • assertions

  • the anatomy of an exception object

  • input/output basics: opening files with the open() function, stream objects, binary vs. text files, newline character translation, reading and writing files, bytearray objects

  • read(), readinto(), readline(), write(), close() methods

core - std lib


logging, debugging and testing




concurrency and asynchronous programming




distribution and packaging


virtual environment


python coding standards


design patterns


software engineering principles


data structures and algorithms




mathematical notations


mathematical theories and concepts




webscraping - beautifulsoup




image processing


data science


machine learning


computer vision


deep learning


py2 and py3 differences


web dev



adapted core from pythoninstitute