lec 18.py