PYMUG
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 init.py 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

1:

logging, debugging and testing

1:

networking

1:

concurrency and asynchronous programming

1:

gui

1:

distribution and packaging

1:

virtual environment

1:

python coding standards

1:

design patterns

1:

software engineering principles

1:

data structures and algorithms

1:

databases

1:

mathematical notations

1:

mathematical theories and concepts

1:

cryptography

1:

webscraping - beautifulsoup

1:

requests

1:

image processing

1:

data science

1:

machine learning

1:

computer vision

1:

deep learning

1:

py2 and py3 differences

1:

web dev

1:

references

adapted core from pythoninstitute