Eu devo usar Python 2 ou Python 3?

Publicado em 2016-08-02 por Vinicius Assef

Afinal, qual Python usar? Vou analisar alguns motivos para você usar Python 3, quais são as diferenças entre o Python 2 o Python 3 e como saber se as ferramentas que você pretende usar são compatíveis.

tl;dr Se você vai começar a estudar Python agora ou iniciar um projeto novo, escolha Python 3 e consulte a lista de cursos gratuitos de Python em Português.

Python 2 já vem sendo chamado de Python legado ou Python antigo. Nesse artigo, usarei esses termos para fazer referência ao Python 2 sempre que possível.

Quando devo usar Python 3?

Na verdade, a pergunta correta seria: "quando devo usar Python antigo?"

A resposta curta é "só use Python antigo quando você não tiver escolha". Por exemplo:

  1. Você trabalha em um projeto que já usa Python antigo e migrar não é uma alternativa no momento. Essa situação é a mais complicada de todas! Nem sempre você tem autonomia para migrar o sistema. Mas lembre sempre aos seus colegas que essa deve ser uma preocupação constante.

  2. Você precisa de uma biblioteca que só funciona em Python antigo. Busque alternativas. Evite ao máximo usar ferramentas que ainda não migraram nem estão em processo de mudança para o Python 3. Eu já apanhei com isso!

  3. O servidor que você vai usar só permite usar Python antigo. Procure outro serviço de hospedagem. Só use esse servidor se realmente não houver alternativa.

A comunidade Python está em franca atividade para fazer a migração da enorme base de código existente para Python 3.

O site oficial de Python explica em mais detalhes esse assunto, no artigo Should I use Python 2 or Python 3 for my development activity?

Você vai encontrar muito material sobre o Python antigo na internet, mas não se preocupe. Para um iniciante as diferenças são pouquíssimas.

Como saber se uma biblioteca que pretendo usar está disponível para Python 3?

Alguns sites listam os pacotes compatíveis com Python 3:

Dica: se você pretende programar para web, os principais frameworks já funcionam plenamente em Python 3. Exemplos: Django, Flask, Pyramid.

Quais são as diferenças básicas do Python 2 para o Python 3?

Você pode ler o guia oficial What's new in Python 3, mas para iniciantes a leitura é muito densa. Aqui, tentei listar alguns itens importantes em linguagem mais simples. Veja:

print é uma função

No Python antigo:

print "Teste"

No Python 3:

print ("Teste")

Divisão de números decimais

No Python antigo:

>>> 5 / 2
2
>>> 5 / 2.0
2.5

No Python 3:

>>> 5 / 2
2.5

Classes herdando de object

Para desfrutar de todos os recursos de orientação a objetos do Python antigo, suas classes precisavam herdar de object, assim:

class MinhaClasse(object):
    def soma(self, a, b):
        return a + b

No Python 3:

class MinhaClasse:
    def soma(self, a, b):
        return a + b

raw_input() foi renomeado para input()

No Python antigo:

nome = raw_input("Digite seu nome:")

No Python 3:

nome = input("Digite seu nome:")

Como eu disse, essa lista não esgota o assunto. Ela é apenas um resumo prático para iniciantes. Existem muitas melhorias no Python 3 que não impactam tanto quem está começando na linguagem.

Vinicius Assef

Eu sou apaixonado por Python e shell script.

Aprenda com seus erros e dê nome certo às coisas.