Apuntes_Python/01_curso/Modulo_1/1-4f_debugger.py

106 lines
3.0 KiB
Python
Raw Normal View History

2022-12-24 22:41:20 -03:00
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 <topic>):
========================================
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')