← Blog

Erros Comuns em Python e Como Corrigi-los

10 de julho de 2026pythoniniciantesdebug

Você está escrevendo código Python, tudo parece certo, mas o programa simplesmente não funciona. O erro aparece, você lê a mensagem, e nada faz sentido. Isso é normal. Vou mostrar os 4 erros mais comuns que vejo alunos cometendo e como corrigir cada um com exemplos reais.

1. NameError: nome não definido

Esse erro aparece quando você tenta usar uma variável antes de criá-la. Parece óbvio, mas em scripts maiores é fácil escapar.

# Erro comum
total = preco + imposto  # NameError: name 'preco' is not defined

O problema é que preco e imposto não existem ainda. A solução é simples: defina antes de usar.

# Correção
preco = 100
imposto = 15
total = preco + imposto
print(total)  # 115

Outra variação perigosa é quando você tenta usar uma variável de dentro de uma função fora dela. Lembre-se: variáveis criadas dentro de funções são locais.

def calcular_total():
    desconto = 10
    return 200 - desconto

print(desconto)  # NameError: name 'desconto' is not defined

Para acessar desconto fora da função, você precisa retorná-lo ou declará-lo global (o que geralmente é má prática). Melhor: refatore o código.

2. TypeError: argumentos com tipos incompatíveis

Python é dinamicamente tipado, mas isso não significa que você pode misturar qualquer coisa. Um erro clássico é somar string com número.

# Erro comum
idade = 25
mensagem = "Minha idade é " + idade  # TypeError: can only concatenate str (not "int") to str

A correção é converter explicitamente:

# Correção
idade = 25
mensagem = "Minha idade é " + str(idade)
print(mensagem)  # Minha idade é 25

Ou use f-strings, que já tratam a conversão automaticamente:

# Forma mais elegante
idade = 25
mensagem = f"Minha idade é {idade}"
print(mensagem)  # Minha idade é 25

Outro exemplo comum é quando você tenta fazer operações matemáticas com listas:

numeros = [10, 20, 30]
soma = numeros + 5  # TypeError: can only concatenate list (not "int") to list

Nesse caso, você quer somar um valor a cada elemento:

numeros = [10, 20, 30]
soma = [n + 5 for n in numeros]
print(soma)  # [15, 25, 35]

3. IndexError: índice de lista fora do alcance

Esse erro acontece quando você tenta acessar uma posição que não existe na lista. Lembre-se: listas começam no índice 0.

# Erro comum
frutas = ["maçã", "banana", "laranja"]
print(frutas[3])  # IndexError: list index out of range

A lista tem índices 0, 1 e 2. O índice 3 não existe. A correção é verificar o tamanho antes de acessar:

# Correção com verificação
frutas = ["maçã", "banana", "laranja"]
if len(frutas) > 3:
    print(frutas[3])
else:
    print("Índice inválido")

Mas o erro mais comum é em loops. Veja este exemplo típico:

# Erro comum em loop
lista = [1, 2, 3]
for i in range(len(lista)):
    print(lista[i + 1])  # IndexError na última iteração

Quando i chega a 2, i + 1 vale 3, que está fora da lista. A correção é ajustar o intervalo:

# Correção
lista = [1, 2, 3]
for i in range(len(lista) - 1):
    print(lista[i + 1])  # 2, 3

4. AttributeError: objeto não tem atributo

Esse erro é famoso em bibliotecas como pandas e requests. Você tenta usar um método ou propriedade que não existe no objeto.

# Erro comum com pandas
import pandas as pd

dados = pd.DataFrame({"nome": ["Ana", "João"], "idade": [25, 30]})
media = dados.media()  # AttributeError: 'DataFrame' object has no attribute 'media'

O erro é um simples erro de digitação. O método correto é mean():

# Correção
media = dados["idade"].mean()
print(media)  # 27.5

Outro exemplo com strings:

# Erro comum
texto = "python"
texto.upper_snake()  # AttributeError: 'str' object has no attribute 'upper_snake'

Nesse caso, o método correto é upper() ou replace(). Sempre consulte a documentação da biblioteca que você está usando.

Conclusão

Erros em Python são ótimos professores. Cada NameError, TypeError ou IndexError te ensina algo sobre como a linguagem funciona. A dica mais importante é: leia a mensagem de erro inteira. Ela sempre diz qual linha deu problema e qual é o tipo de erro.

Para aprofundar seus conhecimentos e praticar esses conceitos com exercícios corrigidos, visite MeuPasso. Lá você encontra desafios práticos que simulam situações reais de programação, com feedback automático para cada erro que você cometer.