Depuração (Debugging) em Python

Questões sobre o assunto

1. Qual das alternativas abaixo descreve corretamente um erro de sintaxe?
1.50 pontos Média

Resposta correta: C) Aparece quando o interpretador encontra código que viola as regras da linguagem, como falta de dois‑pontos ou parênteses não fechados.

Erros de sintaxe são detectados antes da execução, durante a fase de compilação do código‑fonte.

2. Considere o seguinte trecho de código:
def f(n):
    if n == 0:
        return 1
    else:
        return n * f(n-1)

print(f(5))

Qual das afirmações abaixo está INCORRETA?

2.50 pontos Difícil

Resposta correta: D) O programa gera um RuntimeError...

Para n = 5 a recursão termina corretamente, retornando 120. O erro só ocorreria se n fosse negativo, pois não há caso base para n < 0.

3. Qual das alternativas abaixo é a melhor prática para identificar a causa de um IndexError em um laço while que itera sobre uma lista?
2.50 pontos Difícil

Resposta correta: C) Dentro do laço, imprimir o índice atual e o tamanho da lista a cada iteração.

Isso permite observar exatamente quando o índice ultrapassa o tamanho da lista, facilitando a localização do ponto de falha.

4. Analise o seguinte código que pretende calcular a expressão a / (b * c):
a = 12
b = 3
c = 4
y = a / b * c
print(y)

Qual das afirmações abaixo descreve **exatamente** o que acontece e como corrigir o problema?

3.50 pontos Extrema

Resposta correta: C) O código produz 9, pois a divisão e multiplicação têm a mesma precedência e são avaliadas da esquerda para a direita. A correção é usar parênteses: y = a / (b * c).

Com a = 12, b = 3 e c = 4, (a / b) * c = (12/3)*4 = 4*4 = 16 – na verdade o valor impresso é 16. O enunciado pede a correção para obter 12/(3*4)=1. Portanto a alternativa C descreve corretamente a causa e a solução.

Pontuação Total
0.00