Chegou o momento de compreendermos as diferenças cruciais entre as versões de Python. No mundo da programação, as linguagens evoluem constantemente para incorporar novas funcionalidades, melhorar a eficiência e corrigir erros. Python não é exceção. Esta evolução contínua significa que as versões de Python podem apresentar diferenças significativas. Vamos explorar estas diferenças de forma prática e concreta.
Python 2 vs Python 3
A principal distinção que muitos novos programadores encontram é entre o Python 2 e o Python 3. Embora o suporte oficial para o Python 2 tenha terminado em janeiro de 2020, é importante reconhecer as diferenças porque muitos projetos legados ainda usam Python 2.
Exemplo Prático: A função print
Em Python 2, a função print
é usada sem parênteses:
# Python 2
print "Olá, Mundo!"
Em Python 3, print
tornou-se uma função e portanto requer parênteses:
# Python 3
print("Olá, Mundo!")
Exemplo Prático: Divisão de Inteiros
Em Python 2, a divisão de dois inteiros resulta em outro inteiro:
# Python 2
resultado = 7 / 2 # resultado será 3
Em Python 3, a divisão de dois inteiros resulta num número de ponto flutuante:
# Python 3
resultado = 7 / 2 # resultado será 3.5
Se pretende a divisão inteira em Python 3, utiliza o operador //
:
# Python 3
resultado = 7 // 2 # resultado será 3
Exemplo Prático: Manipulação de Strings
Outra diferença importante surge na manipulação de strings. Em Python 2, as strings são tratadas como str
e unicode
separadamente. Em Python 3, todas as strings são por defeito Unicode.
Python 2:
# Python 2
texto = u"Olá, Mundo!"
Python 3:
# Python 3
texto = "Olá, Mundo!" # Por defeito, as strings são Unicode
Versões de Python 3.x
Python 3.x trouxe várias versões desde o seu lançamento em 2008, com melhorias incrementais. Eis algumas mudanças notáveis nas versões mais recentes:
Python 3.6: Formatação de Strings com f-Strings
Introduziu-se uma forma mais prática e eficiente de formatar strings, conhecida como f-strings.
# Python 3.6+
nome = "João"
idade = 30
print(f"O meu nome é {nome} e tenho {idade} anos")
Python 3.7: Função breakpoint()
A introdução da função breakpoint()
facilitou a inserção de pontos de interrupção para depuração.
# Python 3.7+
breakpoint() # Insere um ponto de interrupção aqui
Python 3.8: Operador de Atribuição Walrus (:=
)
Permite a atribuição de valores no meio de uma expressão.
# Python 3.8+
if (n := len("Olá, Mundo!")) > 10:
print(f"O comprimento da string é {n}")
Que Versão Devo Usar?
Para a maioria dos novos projetos, recomenda-se utilizar a versão mais recente do Python 3.x. Esta versão oferece as mais recentes funcionalidades e melhorias de performance, e normalmente inclui correções de segurança que não estão disponíveis nas versões mais antigas.
Exceção: Manutenção de Projetos Legados
Se está a trabalhar num projeto legado que foi iniciado em Python 2, pode necessitar de manter essa versão. No entanto, se puder, considere migrar para Python 3 para beneficiar das melhorias e suporte futuro.
Resumo
Explorámos as principais diferenças entre Python 2 e Python 3 e destacámos alguns dos avanços introduzidos nas versões mais recentes de Python 3.x. Ao compreender estas diferenças, estará mais bem equipado para decidir qual a versão de Python que melhor se adequa às suas necessidades e como adaptar o seu código em conformidade.