import pdb print(''' Se importa con: import pdb Breakpoint en la linea donde se requiera: pdb.set_trace() Comandos para tomar control de la ejecución: h(elp) - Muestra la ayuda de todos los comandos que provee pdb. s(tep) - Ejecuta la línea actual. Si en la línea actual hay una llamada de función se mete dentro del código de la función para poder seguir la ejecución de la misma. n(ext) - Continúa la ejecución hastala próxima línea. r(eturn) - Continúa la ejecución hasta el return de la función actual. c(ontinue) - Continúa la ejecución hasta el próximo breakpoint o hasta el fin del programa. l(ist) - Muestra el código del archivo actual. p - Evalúa la expresión pasada como parámetro, la evalua en el contexto actual e imprime su valor. q(uit) - Sale del depurador. El programa es abortado. ''') pdb.set_trace() print(''' Ayuda del degguber (Pdb) h Documented commands (type help ): ======================================== EOF c d h list q rv undisplay a cl debug help ll quit s unt alias clear disable ignore longlist r source until args commands display interact n restart step up b condition down j next return tbreak w break cont enable jump p retval u whatis bt continue exit l pp run unalias where Miscellaneous help topics: ========================== exec pdb ''') pdb.set_trace() def a_function(a_number): """ La función recibe un número @a_number y: Si es par: Si es múltiplo de 10: devuelve el número dividido en 2 Si es múltiplo de 8: devuelve el número dividido en 4 si es otro resta 1 Si es impar: Si es múltiplo de 3: devuelve el número multiplicado por 11 Si es múltiplo de 7: devuelve el número multiplicado por 23 si es otro suma 1 """ pdb.set_trace() result = None if a_number %2 == 0: if a_number % 10 == 0: result = a_number / 2 elif a_number % 8 == 0: result = a_number - 1 else: result = a_number -1 else: if a_number % 3 == 0: result = a_number * 11 elif a_number % 7 == 0: result = a_number * 23 else: result = a_number + 1 return result result_1 = a_function(20) print(result_1) print('END')