Sería bastante más fácil si eliminaras esos bloques except y dejaras que la excepción te dijera cuál es el error exacto.
Además de todo lo ya escrito, esto choca un poco:
Código Python:
Ver originalwhile True:
if y0 or funcion or paso == 'salir':
break
else
es exactamente lo mismo que
Código Python:
Ver originalwhile not (y0 or funcion or paso == 'salir'):
....