10 Erros comuns de iniciantes em Python (e como evitar)
Você provavelmente já cometeu pelo menos 5 desses erros. Veja quais são e como evitá-los.
Todo mundo erra — e tá tudo bem
Errar faz parte do processo de aprender a programar. Mas alguns erros aparecem com tanta frequência que vale a pena conhecê-los antes de cair neles (ou para entender por que seu código não funciona).
Aqui vão os 10 erros mais comuns de quem está começando com Python.
1. Esquecer os dois pontos :
# Errado
if idade >= 18
print("Maior de idade")
# Correto
if idade >= 18:
print("Maior de idade")
O Python exige : depois de if, for, while, def, class... Esquecer é o erro número 1 de quem está começando.
2. Indentação errada
# Errado
def saudacao():
print("Olá!") # IndentationError
# Correto
def saudacao():
print("Olá!")
Em Python, a indentação não é estética — ela é obrigatória. Use sempre 4 espaços (ou configure seu editor para converter Tab em espaços).
3. Comparar com = em vez de ==
# Errado — isso é atribuição, não comparação
if nome = "Ana":
# Correto
if nome == "Ana":
Um = atribui valor. Dois == comparam. É simples, mas no calor do momento todo mundo confunde.
4. Modificar uma lista enquanto itera sobre ela
# Errado — comportamento imprevisível
numeros = [1, 2, 3, 4, 5]
for n in numeros:
if n % 2 == 0:
numeros.remove(n)
# Correto — criar uma nova lista
numeros = [1, 2, 3, 4, 5]
numeros = [n for n in numeros if n % 2 != 0]
Remover itens de uma lista enquanto você percorre ela é receita para bugs difíceis de encontrar.
5. Confundir print() com return
# Isso NÃO retorna nada, só mostra na tela
def dobro(n):
print(n * 2)
resultado = dobro(5) # resultado é None!
# Correto
def dobro(n):
return n * 2
resultado = dobro(5) # resultado é 10
print() mostra texto no terminal. return devolve um valor para quem chamou a função. São coisas completamente diferentes.
6. Usar variável antes de definir
# Errado
print(mensagem) # NameError: name 'mensagem' is not defined
mensagem = "Olá"
# Correto
mensagem = "Olá"
print(mensagem)
Python lê o código de cima para baixo. Você não pode usar uma variável que ainda não existe.
7. Esquecer de converter tipos
# Errado
idade = input("Sua idade: ")
if idade > 18: # TypeError: '>' not supported between str and int
# Correto
idade = int(input("Sua idade: "))
if idade > 18:
print("Maior de idade")
O input() sempre retorna texto (string). Se você quer comparar como número, precisa converter com int() ou float().
8. Argumento padrão mutável
# Perigoso — a lista é compartilhada entre chamadas!
def adicionar(item, lista=[]):
lista.append(item)
return lista
print(adicionar("a")) # ['a']
print(adicionar("b")) # ['a', 'b'] — surpresa!
# Correto
def adicionar(item, lista=None):
if lista is None:
lista = []
lista.append(item)
return lista
Esse é tão traiçoeiro que pega até programadores experientes. Argumentos padrão mutáveis (listas, dicionários) são criados uma única vez quando a função é definida.
9. Confundir is com ==
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True — mesmos valores
print(a is b) # False — objetos diferentes na memória
Use == para comparar valores. Use is apenas para comparar com None, True ou False.
10. Não ler a mensagem de erro
Esse é o mais importante. Quando o Python dá erro, ele diz o que aconteceu e onde:
Traceback (most recent call last):
File "main.py", line 5, in <module>
print(nome)
NameError: name 'nome' is not defined
A última linha é a mais importante. Leia ela primeiro! Com o tempo, você vai reconhecer os erros antes mesmo de olhar o código.
Conclusão
Não se preocupe em decorar tudo isso. Com a prática, esses erros vão ficando cada vez mais raros. O importante é não ter medo de errar — cada erro é uma oportunidade de entender melhor como o Python funciona.