- Inteligência Artificial
- 16-02-2025
Python é uma das linguagens de programação mais populares no mundo, conhecida por sua simplicidade e versatilidade. No entanto, mesmo sendo amigável para iniciantes, é comum que programadores, tanto novatos quanto experientes, cometam erros que podem comprometer a eficiência, legibilidade e funcionalidade do código.
Neste artigo, reunimos os 10 erros mais comuns que todo programador Python deve evitar, com exemplos práticos e soluções detalhadas. O objetivo é ajudar você a escrever códigos mais limpos, eficientes e profissionais.
Python utiliza a indentação para definir blocos de código. Qualquer descuido pode resultar em erros de sintaxe difíceis de identificar.
if True:
print("Isso vai gerar um erro!") # Indentação errada
Sempre use espaços consistentes ou configure seu editor para utilizar 4 espaços por nível de indentação. Exemplo corrigido:
if True:
print("Indentação corrigida!")
As variáveis globais tornam o código mais difícil de depurar e podem causar comportamentos inesperados, especialmente em programas grandes.
valor = 10
def soma(numero):
return valor + numero # Depende de uma variável global
print(soma(5))
Prefira variáveis locais e, se necessário, passe valores como argumentos:
def soma(valor, numero):
return valor + numero
print(soma(10, 5))
Ignorar o tratamento de exceções pode fazer com que seu programa falhe sem explicações claras.
numero = int(input("Digite um número: "))
print(10 / numero) # Pode gerar ZeroDivisionError
Utilize blocos try/except
para prever erros:
try:
numero = int(input("Digite um número: "))
print(10 / numero)
except ZeroDivisionError:
print("Erro: Divisão por zero.")
except ValueError:
print("Erro: Entrada inválida.")
Quando você trabalha com arquivos, esquecer de fechá-los pode causar vazamento de recursos.
arquivo = open("dados.txt", "r")
conteudo = arquivo.read()
# Esqueceu de fechar o arquivo
Utilize a palavra-chave with
, que fecha o arquivo automaticamente:
with open("dados.txt", "r") as arquivo:
conteudo = arquivo.read()
Listas não são sempre a melhor escolha, especialmente quando você precisa de operações rápidas de busca.
nomes = ["Ana", "Carlos", "Beatriz"]
if "Carlos" in nomes: # Operação lenta
print("Carlos encontrado!")
Use dicionários ou conjuntos para buscas mais rápidas:
nomes = {"Ana", "Carlos", "Beatriz"}
if "Carlos" in nomes: # Operação eficiente
print("Carlos encontrado!")
Escrever loops explícitos para criar listas pode ser desnecessariamente verboso.
quadrados = []
for i in range(10):
quadrados.append(i ** 2)
Use list comprehensions para tornar o código mais limpo e eficiente:
quadrados = [i ** 2 for i in range(10)]
Parâmetros mutáveis, como listas ou dicionários, podem causar comportamentos imprevisíveis.
def adicionar_elemento(lista=[]):
lista.append(1)
return lista
print(adicionar_elemento()) # Saída: [1]
print(adicionar_elemento()) # Saída: [1, 1]
Use valores imutáveis, como None
, como padrão:
def adicionar_elemento(lista=None):
if lista is None:
lista = []
lista.append(1)
return lista
print(adicionar_elemento()) # Saída: [1]
print(adicionar_elemento()) # Saída: [1]
Muitos programadores ainda utilizam print
para depuração, ignorando ferramentas mais sofisticadas.
x = 10
print(x)
Use o módulo pdb
para depuração:
import pdb
pdb.set_trace()
x = 10
print(x)
A falta de testes pode levar a bugs em produção. Testes manuais não são suficientes para aplicações maiores.
Use frameworks de teste como unittest
ou pytest
para automatizar a validação do código:
def soma(a, b):
return a + b
# Teste automatizado
def test_soma():
assert soma(2, 3) == 5
Um código sem comentários ou documentação é difícil de entender e manter.
def calcula(x, y):
return x ** y # Sem contexto
Use docstrings para explicar funções:
def calcula(base, expoente):
"""
Calcula a potência de um número.
Args:
base (int): Base do cálculo.
expoente (int): Expoente.
Returns:
int: Resultado da base elevada ao expoente.
"""
return base ** expoente
Cometer erros é parte do aprendizado, mas reconhecê-los e corrigi-los é o que transforma você em um programador melhor. Ao evitar esses 10 erros comuns, você estará no caminho certo para escrever códigos mais limpos, eficientes e profissionais.
Python é uma linguagem poderosa, mas requer atenção aos detalhes. Revise seu código frequentemente, teste suas implementações e continue aprendendo.
Gostou deste artigo? Compartilhe com outros programadores para que eles também possam evitar essas armadilhas!
Comentários: