Curso

Se você está pensando em entrar na área de ciência de dados, provavelmente já ouviu falar de Python. Python é uma linguagem de programação open source e de uso geral, com ampla aplicação em ciência de dados e em outras áreas de software, como desenvolvimento web e de games, cibersegurança e blockchain.
A popularidade de Python explodiu nos últimos anos. Ele aparece em primeiro lugar em diversos índices de popularidade de linguagens de programação, incluindo o índice TIOBE e o PYPL. Você pode saber mais sobre para que Python é usado em um artigo separado.
Graças à sua sintaxe simples e legível, Python costuma ser citado como uma das linguagens mais fáceis para quem está começando a programar. Se você é novo em ciência de dados e não sabe qual linguagem aprender primeiro, Python é uma das melhores opções. Você pode começar sua jornada agora fazendo a trilha de carreira Data Scientist with Python na DataCamp.
Ainda assim, pode rolar uma confusão: você também deve ter ouvido falar em Python 2 e 3. Como assim? Não existe uma única linguagem Python? Qual delas você deve aprender? Sem estresse: salvo exceções muito específicas, hoje você vai usar Python 3. De qualquer forma, vale conhecer as diferenças.
Nas seções a seguir, vamos explicar o que são Python 2 e 3, as principais diferenças entre eles e qual é a opção mais indicada para aprender e usar.
O que é Python 2
Python foi desenvolvido no fim dos anos 1980 por Guido van Rossum e foi divulgado publicamente pela primeira vez em 1991. Após nove anos de desenvolvimento e crescente popularidade, o Python 2.0 foi lançado em 2000.
O Python 2 trouxe uma especificação técnica nova chamada Python Enhancement Proposal (PEP), com diretrizes e boas práticas para escrever código Python. Ele também trouxe recursos como list comprehensions, suporte a Unicode e um garbage collector com detecção de ciclos.
Mas a mudança mais importante no Python 2 foi no próprio processo de desenvolvimento. Python foi concebido como uma linguagem fácil de aprender por iniciantes. Para atingir esse objetivo, a equipe de desenvolvimento –com Guido van Rossum à frente– decidiu adotar um processo mais transparente e apoiado pela comunidade.
O Python 2 continuou evoluindo ao longo do tempo. Versões sucessivas adicionaram novas funcionalidades à linguagem. A última versão do Python 2, lançada em 2010, foi a 2.7. O suporte para essa versão terminou em 1º de janeiro de 2020.
O que é Python 3
Python 3 é a próxima geração da linguagem. Ele foi lançado em dezembro de 2008, com várias melhorias e novos recursos.
Python 3 não foi apenas “mais uma versão” do Python 2 após correções. A nova versão mudou a linguagem de forma drástica para resolver problemas de segurança e falhas de design das versões anteriores. O Python 3 trouxe uma nova sintaxe pensada para evitar código redundante ou repetitivo, isto é, trechos que fazem a mesma tarefa de formas diferentes. Ao oferecer uma maneira única e clara de fazer as coisas, a facilidade de uso e a legibilidade do Python 3 melhoraram bastante.
Algumas das maiores mudanças no Python 3 incluem transformar a declaração print em função embutida, divisão inteira aprimorada e melhor suporte a Unicode. A natureza dessas mudanças tornou o Python 3 incompatível com o Python 2, ou seja, sem compatibilidade retroativa.
Por que existem versões diferentes de Python?
Vamos ver alguns exemplos de código para ilustrar as diferenças entre Python 2 e 3!
A nova função print()
A instrução print no Python 2 foi substituída pela função print() no Python 3, o que significa que precisamos envolver entre parênteses o objeto que queremos imprimir.
Python 2:
>>> print 'Hello DataCamp'
Hello DataCamp
Python 3:
>>> print('Hello Datacamp')
Hello Datacamp
Divisão de inteiros
No Python 2, ao dividir inteiros, o resultado era sempre um inteiro. No Python 3, o resultado sempre inclui decimais, deixando a divisão mais intuitiva.
Python 2:
>>> 5/2
2
Python 3:
>>> 5/2
2.5
Suporte a Unicode
No Python 2, toda string Unicode precisa ser marcada com o prefixo “u”, já que o padrão é usar caracteres ASCII. Já o Python 3 armazena strings como Unicode por padrão, o que é mais versátil que ASCII.
Python 2:
>>> print type("Hello DataCamp!") # this is an ASCII string
<type 'str'>
>>> print type(u"Hello DataCamp!") # this is a Unicode string
<type 'unicode'>
Python 3:
>>> print(type("Hello DataCamp!")) # this is a Unicode string
<class 'str'>
Função range
A função xrange() do Python 2 deixou de existir no Python 3. Ela foi substituída pela função range(), que tem desempenho melhor ao iterar sobre sequências.
Python 2:
>>> xrange(1,10)
xrange(1, 10)
>>> type(xrange(1,10))
<type 'xrange'>
Python 3:
>>> range(1,10)
range(1, 10)
>>> type(range(1,10))
<class 'range'>
Na tabela a seguir, você encontra as principais diferenças entre Python 2 e 3.
|
Python 2 |
Python 3 |
|
|
Data de lançamento |
2000 |
2008 |
|
Sintaxe |
Mais complexa e difícil de interpretar |
Mais legível e fácil de entender |
|
Desempenho |
Mais lento devido a falhas de design |
Tempo de execução do código aprimorado em relação ao Python 2 |
|
Função print |
print “Welcome to Datacamp” |
print (“Welcome to Datacamp”) |
|
Divisão de inteiros |
O resultado é um valor inteiro. Os decimais são sempre truncados |
O resultado é sempre um valor float |
|
Suporte a Unicode |
Usa ASCII por padrão. Para armazenar valores Unicode, é preciso defini-los usando “u” |
O armazenamento padrão de strings é Unicode |
|
Range |
Função xrange() para criar uma sequência de números |
A função range() é mais eficiente para iterar do que xrange() |
|
Compatibilidade retroativa |
Relativamente fácil portar de Python 2 para Python 3. |
Python 3 não é compatível retroativamente com Python 2 |
|
Bibliotecas |
Muitas bibliotecas antigas do Python 2 não são compatíveis com versões futuras |
A maioria das novas bibliotecas para Python 3 não pode ser usada no Python 2 |
É possível converter Python 2 para 3?
Evolução é uma característica essencial de toda linguagem de programação. As linguagens evoluem para melhorar o desempenho e permanecer relevantes para os usuários. A migração do Python 2 para o 3 foi a maior mudança na história do Python.
Embora faça sentido que empresas e desenvolvedores eventualmente migrem sua base de código para Python 3 –especialmente após o fim do suporte ao Python 2–, portar código de uma versão antiga para uma nova pode ser um processo difícil e intimidador. Isso é ainda mais crítico em Python, já que muitas bibliotecas do Python 2 não são compatíveis com versões futuras.
Felizmente, existem recursos que ajudam a converter código Python 2 para Python 3.
- 2to3: um programa em Python que recebe código-fonte Python 2.x e aplica uma série de correções para transformá-lo em código Python 3.x válido.
- Python-Future: permite usar uma base de código única, limpa e compatível com Python 3.x para dar suporte tanto a Python 2 quanto a Python 3 com sobrecarga mínima.
- Six: uma biblioteca de compatibilidade entre Python 2 e 3. Fornece funções utilitárias para suavizar as diferenças entre as versões, com o objetivo de escrever código compatível com ambas.
Python 2 vs 3: qual é melhor?
Embora essa tenha sido uma questão debatida há alguns anos, hoje não há dúvida de que Python 3 é a melhor escolha. Primeiro, o Python 2 não é mais suportado desde 2020. Portanto, faz sentido que novos projetos sejam escritos em Python 3.x. Segundo, como o Python 2 não recebe mais suporte, toda a evolução está do lado do Python 3. A linguagem vem recebendo melhorias constantes a cada nova atualização (a versão mais recente é a 3.10.5, e já existe uma versão beta do Python 3.11 com recursos importantes).
Nesse contexto, não surpreende a adoção massiva do Python 3. De acordo com a Python Developers Survey 2021, conduzida pela JetBrains, em média, 95% dos desenvolvedores Python usavam Python 3. Além disso, a fatia de usuários do Python 2 cai cerca de 5 pontos percentuais por ano.
Adoção de Python 2 vs Python 3

Fonte: JetBrains
Qual versão de Python usar?
Hoje, Python 3 é a melhor versão da linguagem. Optar por ela é a escolha mais segura, especialmente para quem está começando a programar. Desde o fim do suporte, o Python 2 vem perdendo fôlego rapidamente, e cada vez mais empresas estão migrando seu código para Python 3. Dada a demanda crescente em vários domínios de software, o uso disseminado e a enorme coleção de bibliotecas mantidas pela comunidade, faz todo sentido aprender Python 3.
No entanto, é importante notar que, em algumas circunstâncias, você ainda vai precisar usar Python 2. Primeiro, muitas empresas ainda têm bases legadas escritas em Python 2 que são difíceis de portar para Python 3. Se esse for o caso da empresa ou do projeto em que você trabalha, você terá que aprender Python 2. Segundo, há alguns domínios de software, como DevOps, em que o Python 2 ainda é exigido.
De qualquer forma, se você está pensando em começar uma nova carreira em ciência de dados, Python 3 é a escolha inteligente. Com a DataCamp, está tudo pronto para você. Confira nossos cursos e trilhas de Python e comece hoje sua jornada em dados!
Perguntas frequentes sobre boas práticas em Python
Qual versão do Python é mais popular?
Python 3 é o vencedor incontestável, com adoção massiva em comparação ao Python 2.
Python é uma linguagem adequada para ciência de dados?
As linguagens mais populares para ciência de dados são Python e R. A DataCamp tem um amplo catálogo de cursos de Python para ajudar você a começar.
Qual versão tem melhor tempo de execução?
Sim! Em quase todos os testes, o Python 3 costuma ser mais rápido que o Python 2.
Qual é a versão mais recente do Python 2?
Python 2.7. Em 2020, o suporte e a manutenção dessa versão foram encerrados.
Por que migrar para o Python 3?
Python 3 é uma linguagem melhor e vem com um conjunto mais robusto de bibliotecas padrão do que o Python 2. Além disso, desde 2020, a linguagem e as bibliotecas padrão só evoluem no Python 3.
Posso portar Python 2 para Python 3?
Sim. Existem recursos que você pode usar para atualizar seu código para Python 3, como 2to3, Python-Future e Six.
Posso instalar Python 2 e 3 ao mesmo tempo?
Sim. Você pode fazer isso mantendo ambientes virtuais separados para Python 2 e 3.