Download PDF
Numbers, booleans and dynamic typing in Python
Lists, tuples and immutablility AND Lambda functions
Control flow
Strings
Functions and more on dynamic typing
Classes
datetime
Reference counting and del
Garbage collection and the heap in Python
Unix shell integration
Copy
os, sys, subprocess
Reading and saving data with pickle, xml, csv
math, cmath, random, statistics
string and re
doctest
functools
dataclasses
Logging
gc
dis
Linked lists, sets, queues, stacks and nodes
Multithreading and the Global Interpreter Lock (GIL)
threading
cpython and pypy
Writing modules using python
Writing modules using c and cython
pip
venv
Managing multiple versions of Python with pyenv and pipenv
The Python interpreter
Jupyter
conda
python: + cpython (not jit?) + pypy (jit?)
why jit? can’t do aot if dynamic types, array sizes. jit vs interpreter allows speed up
default is cpython pypy is alternative
cpython: can compile to .pyc bytecode which it then interprets