Escola Koru

Quais as diferenças entre Python 2 e Python 3?

Antes de se iniciar no Python, surge sempre a dúvida: qual versão da linguagem devo aprender? Talvez mais difícil que esta é a dúvida que vem de quem já programa em Python: devo fazer meus programas em qual versão do Python?

O ponto é que as duas maiores versões major do Python (2 e 3, as únicas em uso) têm diferenças cruciais. O Python 3 não é retrocompatível, e isso acaba trazendo algumas confusões e dúvidas para nós, desenvolvedores.

Mas o que essa “retroincompatibilidade” significa? Basicamente, indica que código escrito em Python 2 pode não funcionar rodando no interpretador do Python 3.

O Python 3 foi lançado no final de 2008, pouco mais de 8 anos depois do Python 2, e veio com intenções claras – retificar as falhas de design que a linguagem trazia.

Mas e aí? O que fazer? Neste post vamos tentar debater isso, apresentando pontos explicativos das diferenças entre as versões e argumentando em prol de um código mais pythônico.

Python 2 e 3, quais são as diferenças?

Python é uma linguagem de programação popular e amplamente utilizada, e suas duas principais versões são o Python 2 e o Python 3. Embora compartilhem muitas semelhanças, existem algumas diferenças significativas entre as duas versões. 

As principais diferenças entre Python 2 e Python 3:

Sintaxe e Print Statement:

Python 2, o print é uma instrução (statement) e é usado como print “Olá, mundo!”.

Python 3, o print é uma função e requer parênteses, como print(“Olá, mundo!”).

Divisão de Números Inteiros:

Python 2, a divisão de dois números inteiros resulta em um número inteiro. Por exemplo, 5 / 2 retorna 2.

Python 3, a divisão de dois números inteiros resulta em um número de ponto flutuante. Por exemplo, 5 / 2 retorna 2.5.

Tratamento de Strings:

Python 2, as strings são tratadas como ASCII por padrão, e as strings Unicode requerem uma notação especial: u”texto”.

Python 3, as strings são tratadas como Unicode por padrão, e as strings em ASCII requerem uma notação especial: b”texto”.

Função range():

Python 2, a função range() gera uma lista de números, ocupando memória.

Python 3, a função range() gera um objeto de sequência, sendo mais eficiente para grandes intervalos.

Iteração em Dicionários:

Python 2, a iteração em dicionários usando dict.keys(), dict.values() ou dict.items() retorna listas.

Python 3, esses métodos retornam objetos de visualização (view objects), que são mais eficientes e consomem menos memória.

Função input():

Python 2, a função input() avalia a entrada do usuário como uma expressão Python.

Python 3, a função input() retorna uma string, exigindo que você converta explicitamente para outro tipo, se necessário.

Manipulação de Bytes:

Python 2, bytes representados como strings.

Python 3, os bytes são uma sequência de números inteiros e há o novo tipo bytearray.

Comparação de Tipos e Objetos:

Python 2, a comparação de objetos com tipos diferentes pode não gerar erros, tornando o código potencialmente confuso.

Python 3, a comparação de tipos diferentes gera um erro explícito, evitando ambiguidades e tornando o código mais seguro.

Para qual versão programar?

Uma pesquisa realizada em 2014, destinada a desenvolvedores Python pode ajudar a entender a visão que prevalece, ou ao menos prevalecia, no período da pesquisa.

Priorize a última versão, quando possível. Sendo assim, se você está começando um projeto pessoal, prefira programar pensando no Python 3.

Começar um novo projeto com Python 3 pode evitar possíveis problemas que a versão anterior carrega e que já foram consertados, além de conseguir maior suporte para próximos avanços, afinal é dito que a partir de 2020 o Python 2 será descontinuado, perdendo grande parte de seu suporte.

Recomenda-se que código em Python 2 seja migrado para a terceira versão, e é o que grande parte dos importantes projetos em Python, inicialmente desenvolvidos na segunda versão, estão fazendo, como é o caso do Requests e BeautifulSoup.

Essas são algumas das principais diferenças entre Python 2 e Python 3. A transição do Python 2 para o Python 3 pode exigir alguma adaptação, mas é um passo importante para aproveitar ao máximo a versatilidade e as melhorias oferecidas pela versão mais recente da linguagem.

Post Relacionados

O que é desenvolvimento de software

Desenvolvimento de software pode parecer um mistério indecifrável para alguns, mas a verdade é que não precisa ser um bicho de sete cabeças.  Na verdade,

Leia Mais

Estamos quase lá!

Estamos quase lá!

Estamos quase lá!

Estamos quase lá!