VisuAlg Web

Depuração em Python: teste de mesa e breakpoint

Localizar o primeiro resultado que diverge do esperado em Python. Execute o exemplo, confira o resultado e pratique os casos de limite no VisuAlg Web.

No Python, o ponto de depuração padrão é breakpoint(), útil para pausar execução e inspecionar estado.

Exemplo de códigoPython


breakpoint()

x = 10
y = 5
# In the output console, step line by line and inspect x and y
x = x + y
y = x - y
x = x - y
# This classic logic swaps variables without using a temporary variable!
print("Now x is ", x, " and y is ", y)
Exemplo de códigoPython


breakpoint()

print("Use p/next to step and i to inspect.")
for i in range(1, 3 + 1):
    # At each step, inspect i in the console to see the increment happening
    print(i)
print("To exit step-by-step mode, type c and press Enter.")

Localizar o primeiro resultado que diverge do esperado

Depurar é comparar a execução com o raciocínio esperado e localizar a primeira diferença. Para somar de um a três, registre o contador e o acumulador a cada volta. Uma tabela pequena mostra o valor inicial e as atualizações, mesmo sem pausar o programa. O exemplo abaixo usa mensagens de acompanhamento: elas permitem conferir o estado antes de investigar uma execução maior. A ausência de erro de sintaxe não prova que a soma esteja correta.

Preserve a indentação dos blocos ao modificar este exemplo em Python.

Exemplo de códigoPython
soma = 0
for numero in range(1, 4):
    soma += numero
    print("Passo:", numero, "Soma:", soma)
print("Total:", soma)

Resultado esperado e testes

Execute o exemplo sem fornecer entradas. A saída deve ser:

Passo: 1 Soma: 1
Passo: 2 Soma: 3
Passo: 3 Soma: 6
Total: 6

Se colocar soma = 0 dentro do laço, a sequência do acumulador passa a 1, 2 e 3. A primeira diferença em relação ao programa correto ocorre na segunda iteração. Faça essa mudança, execute e depois corrija. Como exercício, investigue uma soma de números pares: preveja as primeiras três linhas antes de adicionar mensagens de acompanhamento.

Depois, compare o raciocínio com a versão do mesmo assunto nas outras linguagens do menu.