A.2.2. Mi programa se cuelga.

Si un programa se para y parece no hacer nada, decimos que \se ha colgado".

A menudo significa que se ha quedado atrapado en un bucle infinito o en una recursión infinita.

  • Si hay un bucle en particular que le resulta sospechoso de provocar el problema, añada una sentencia print justo antes del bucle que diga \entrando al bucle" y otra inmediatamente después que diga \saliendo del bucle".
  • Ejecute el programa. Si obtiene el primer mensaje pero el segundo no, tiene usted un bucle infinito. Vaya a la sección \Bucle Infinito" mas adelante.
  • Una recursión infinita casi siempre hará que el programa corra un rato y luego presente un error de \RuntimeError: Máximum recursión depth exceeded". Si ocurre eso, vaya a la sección \Recursión Infinita" mas adelante.
  • Si no ve este error pero sospecha que hay un problema con un método o función recursivos también puede utilizar las tecnicas de la sección \Recursión Infinita".
  • Si no funciona ninguno de estos pasos, comience a probar otros bucles y otros metodos y funciones recursivos.
  • Si eso no funciona, es posible que no comprenda el flujo de ejecución de su programa. Vaya a la sección \Flujo de Ejecución" mas adelante.
0