See the full GitHub repository or follow the shortcuts below.


  1. Strings [notebook] [exercise]
  2. Numbers [notebook] [exercise]
  3. Conditionals [notebook] [exercise]
  4. Lists [notebook] [exercise]
  5. Dictionaries [notebook] [exercise]
  6. For loops [notebook] [exercise]
  7. Functions [notebook] [exercise]
  8. Testing with pytest - part 1 [notebook] [exercise]
  9. Recap exercise 1 [exercise]
  10. File I\O [notebook] [exercise]
  11. Classes [notebook] [exercise]
  12. Exceptions [notebook] [exercise]
  13. Modules and packages [notebook]
  14. Debugging [notebook] [exercise]
  15. Goodies of the Standard Library - part 1 [notebook] [exercise]
  16. Testing with pytest - part 2 [notebook] [exercise]
  17. Virtual environment [notebook]
  18. Project structure [notebook]
  19. Recap exercise 2 [exercise]


Idiomatic Python

Python is a powerful language which contains many features not presented in most other programming languages. Idiomatic section will cover some of these Pythonic features in detail. These materials are especially useful for people with background in other programming languages.

  1. Idiomatic loops [notebook]
  2. Idiomatic dictionaries [notebook]
  3. Idiomatic Python - miscellaneous part 1 [notebook]
  4. Idiomatic Python - miscellaneous part 2 [notebook]
  5. Idiomatic Python exercise [exercise]

Step up your pytest game

  1. Efficient use of fixtures [notebook]

Best practices

A list of best development practices for Python projects. Most of the practices listed here are also applicable for other languages, however the presented tooling focuses mainly on Python.

  1. Best practices [notebook]

General topics

  1. Goodies of the Standard Library - part 2 [notebook] [exercise]