1. Types/Datastruktures
1.1. Simple Types
1.1.1. String
1.1.2. Boolean
1.1.3. Numbers
1.1.3.1. Arithmetic
1.2. List
1.2.1. Sorting
1.2.1.1. key functions
1.2.1.1.1. lambda
1.2.1.1.2. build in
1.2.1.1.3. custom
1.2.2. Comprehensions
1.3. Tuples
1.4. Set
1.4.1. Comprehensions
1.5. Dicts
1.5.1. Comprehensions
1.6. Special Types
1.6.1. JSON
1.7. Imutable vs mutable
2. Module
2.1. import
2.1.1. Build-in
2.1.2. own modules
2.1.3. 3rd party
2.2. __name__ attribute
2.3. Virtual enviroments
2.3.1. requirements.txt
3. Included in all topics
3.1. Development enviroment
3.1.1. The intepretor
3.1.2. Jupyter Notebooks
3.2. Python execution enviroment
3.2.1. Difference between a compiled language and a scripting language
3.2.2. How is a python program executed
3.2.2.1. read-evaluate-print-loop (REPL)
3.2.3. Virtual environments
3.2.3.1. Jupyter Notebooks
3.3. Conditions
3.3.1. if / Else/ elif
3.3.2. switch
3.3.2.1. dictionary
3.4. loops
3.4.1. for
3.4.2. foreach
3.4.3. while
4. Decorators
4.1. Higher order decorators
4.1.1. Decorators with parameters
4.2. simple decorators
4.3. inner functions
4.4. contectlib
5. Functions
5.1. lambda
5.2. Build in
5.2.1. Implementation / protocol
5.3. Define & use
5.4. Decorators
5.5. Higher-order function / first classs citizens
5.5.1. function as parameter
5.5.2. function as return type
6. Context Manaagers
6.1. with
6.2. Protocol
6.3. contextlib
6.3.1. @contextmanager
6.3.2. ContextDecorator
7. IO
7.1. Files
7.1.1. csv
7.1.2. Text
7.1.3. JSON
7.1.4. DB
7.1.4.1. SQlite
7.2. Network
7.2.1. requests
7.3. Context Managers
8. Pythonic OOP
8.1. Classes
8.2. Objects
8.3. Inheritance
8.4. Encapsulation
8.4.1. Properties