Seu código ficou bem legal!
Mas recomendo algumas refatorações para melhor compreensão sua e nossa e melhor uso das funcionalidades do python.
Além das correções que os colegas indicaram, indico que você leia este artigo aqui do tabnews falando sobre 19 dicas de python.