Versões do Python: Python 2 e 3, novidades de 3.10 a 3.15 e qual versão instalar
A linha atual da linguagem é o Python 3; a versão mais recente é o Python 3.15 (lançado em 9 de outubro de 2026). O Python 2 não tem suporte desde 2020. Uma nova versão sai todo mês de outubro e recebe correções por cerca de cinco anos, por isso, para projetos novos, instale a 3.x mais recente; para descobrir a versão instalada, use o comando python3 --version.
Hoje a linha ativa da linguagem é uma só — o Python 3. A versão estável mais recente é o Python 3.15, lançada em 9 de outubro de 2026, e o Python 2 oficialmente deixou de existir em 2020. A seguir veja as diferenças entre as versões do Python, o que surgiu em cada uma das versões 3.10 a 3.15, qual instalar e como descobrir qual está no seu computador.
Como funcionam as versões do Python
O número da versão tem três partes: 3.15.0. O primeiro número é a versão principal (a linha da linguagem), o segundo é a versão secundária, na qual aparecem novos recursos, e o terceiro é o número de correção, que traz apenas correções de bugs. Quando se fala em "versões do Python", normalmente se referem às secundárias: 3.10, 3.11, 3.12 e assim por diante.
Desde 2019 vigora um ciclo anual (PEP 602): uma nova versão secundária sai todo mês de outubro. Cerca de seis meses antes do lançamento aparecem as versões alfa, depois as betas e os candidatos a lançamento, e após o lançamento vêm as correções do tipo 3.15.1, 3.15.2. Atualizar entre elas é seguro: o comportamento da linguagem nas versões de correção não muda.
Daí a confusão nas buscas: "python 311" e "python 3.11" são a mesma coisa, a versão 3.11. O número não é um decimal, então 3.10 é mais nova que 3.9, e 3.15 é mais nova que 3.2.
Python 2 e Python 3: qual é a diferença
O Python 3 foi lançado em 2008 e quebrou a compatibilidade com a versão anterior de propósito, para corrigir decisões antigas da linguagem. Por isso, código escrito para o Python 2 muitas vezes não roda no Python 3 sem ajustes. A última versão da linha 2 foi a 2.7; o suporte terminou em 1º de janeiro de 2020, e a versão final, 2.7.18, saiu em abril de 2020.
| O quê | Python 2 | Python 3 |
|---|---|---|
| Impressão | print "oi" — operador | print("oi") — função |
| Strings | bytes por padrão, Unicode — u"..." | str — sempre Unicode, bytes — bytes |
| Divisão | 7 / 2 dá 3 | 7 / 2 dá 3.5, divisão inteira — 7 // 2 |
| Entrada | raw_input() | input() |
| Intervalos | range cria uma lista, xrange é preguiçoso | range é preguiçoso |
| Suporte | não há desde 2020 | nova versão todo ano |
Se você encontrou um tutorial ou uma resposta em que o print aparece sem parênteses, é material de Python 2 — está desatualizado. Estudar a linha 2 hoje não faz sentido: ela não é instalada em sistemas novos, as bibliotecas há muito deixaram de oferecer suporte a ela, e o conhecimento dela serve no máximo para migrar código antigo.
Novidades do Python 3.10 a 3.15
Abaixo estão os destaques de cada versão, aquilo que muda o código do dia a dia. As listas completas de alterações estão na seção What's New da documentação oficial.
Python 3.10 (outubro de 2021)
- Correspondência de padrões
match/case(PEP 634) — análise de estruturas de dados no lugar de cadeias deif/elif. - União de tipos com barra vertical:
int | Noneem vez deOptional[int](PEP 604). - Vários gerenciadores de contexto entre parênteses em um único
with. - Mensagens de erro de sintaxe bem mais claras.
def describe(point):
match point:
case (0, 0):
return "origem das coordenadas"
case (x, 0):
return f"sobre o eixo X: {x}"
case _:
return "em outro lugar"
print(describe((3, 0))) # sobre o eixo X: 3
Python 3.11 (outubro de 2022)
- Velocidade: o projeto Faster CPython acelerou o interpretador em média cerca de um quarto, em algumas tarefas bem mais.
- Indicadores precisos no traceback: as setas
^^^^mostram qual expressão exatamente causou a falha na linha (PEP 657). - Grupos de exceções e
except*(PEP 654), anotações para exceções viaadd_note(). - Módulo
tomllibpara leitura de TOML — por exemplo, dopyproject.toml.
Python 3.12 (outubro de 2023)
- Nova sintaxe de genéricos:
def first[T](items: list[T]) -> Te o comandotypepara apelidos de tipos (PEP 695). - As f-strings ganharam uma gramática completa (PEP 701): dentro delas podem ser usadas as mesmas aspas, quebras de linha e comentários.
- O obsoleto
distutilsfoi removido da biblioteca padrão. - Sugestões ainda mais detalhadas nos erros, por exemplo "esqueceu de importar o módulo?".
type Pair = tuple[int, int]
def first[T](items: list[T]) -> T:
return items[0]
songs = ["a", "b"]
print(f"Primeira: {first(songs)!r}, no total {len(songs)}")
print(f"{"aspas dentro"}") # funciona a partir da 3.12
A propósito, sobre a pergunta frequente "f-strings a partir de qual versão": as f-strings surgiram já no Python 3.6, e a liberdade com aspas e quebras de linha dentro das chaves foi acrescentada na 3.12.
Python 3.13 (outubro de 2024)
- Novo console interativo: cores, edição de várias linhas, histórico, comandos
exitehelpsem parênteses. - Build experimental sem GIL (free-threaded, PEP 703) e compilador JIT experimental (PEP 744).
- Removidos módulos antigos "baterias mortas", como
cgietelnetlib(PEP 594). - O prazo de correções de bugs para as novas versões foi aumentado para dois anos.
Python 3.14 (outubro de 2025)
- Template strings, t-strings:
t"Olá, {name}"devolvem não uma string pronta, mas um objeto de template, que pode ser processado com segurança (PEP 750). - Avaliação adiada das anotações (PEP 649) — menos problemas com tipos declarados mais abaixo no arquivo.
- O build sem GIL deixou de ser experimental e recebeu suporte oficial.
- Módulo
compression.zstd, realce de sintaxe no console eexcept A, B:sem parênteses.
Python 3.15 (9 de outubro de 2026)
- Importação preguiçosa
lazy import(PEP 810): o módulo é carregado no primeiro uso, e não na inicialização. Na medição do curso, um script comlazy import pandasiniciou em 14 ms em vez de 280 ms. - Dicionário imutável
frozendict, embutido (PEP 814). - Desempacotamento em listas por compreensão:
[*g for g in groups](PEP 798). - Profiler por amostragem Tachyon na biblioteca padrão (PEP 799).
- UTF-8 por padrão ao trabalhar com arquivos (PEP 686) — acabaram as surpresas com codificação no Windows.
- Novas sugestões "Did you mean" nas mensagens de erro.
lazy import json # PEP 810
cfg = frozendict(limit=500) # PEP 814
flat = [*g for g in [[1, 2], [3]]] # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py # PEP 799, Tachyon
Este código roda apenas na 3.15: em versões mais antigas, lazy import e o desempacotamento em comprehension dão SyntaxError, e frozendict — NameError.
Prazos de suporte das versões do Python
Cada versão vive cerca de cinco anos. No início ela recebe correções comuns de bugs e lançamentos regulares de correção (a partir da 3.13, dois anos), depois apenas correções de segurança até o fim do prazo. Em seguida a versão é considerada end-of-life: as vulnerabilidades nela não são mais corrigidas por ninguém.
| Versão | Lançamento | Fim do suporte | Situação em outubro de 2026 |
|---|---|---|---|
| 2.7 | 2010 | janeiro de 2020 | sem suporte |
| 3.9 | outubro de 2020 | outubro de 2025 | sem suporte |
| 3.10 | outubro de 2021 | outubro de 2026 | suporte terminando |
| 3.11 | outubro de 2022 | outubro de 2027 | apenas segurança |
| 3.12 | outubro de 2023 | outubro de 2028 | apenas segurança |
| 3.13 | outubro de 2024 | outubro de 2029 | correções de bugs |
| 3.14 | outubro de 2025 | outubro de 2030 | correções de bugs |
| 3.15 | outubro de 2026 | outubro de 2031 | mais recente |
Versões ainda mais antigas, como o Python 3.7 (fim do suporte em junho de 2023) e o 3.8 (outubro de 2024), também estão sem correções; aparecem apenas em sistemas legados.
O status atual de cada linha é publicado na página Status of Python versions do Python Developer's Guide. Antes de escolher a versão para um projeto de longa duração, vale consultá-la.
Qual versão do Python instalar
Para estudar e para projetos novos, instale a versão estável mais recente, hoje o Python 3.15. O argumento "vou pegar a 3.10, que é testada" não funciona: em outubro de 2026 ela deixa de receber até correções de segurança, e aprender a linguagem numa versão que está saindo de cena significa reaprender depois. Dentro do Python 3 a compatibilidade é boa: o código de uma versão antiga quase sempre roda na nova, mas o contrário não é verdade.
Há exceções. Se a biblioteca necessária ainda não publicou pacotes para a versão mais recente (isso acontece nas primeiras semanas após o lançamento de outubro, em pacotes com extensões em C), use a anterior, a 3.14. Em um servidor de vida longa, siga a versão dos repositórios da distribuição ou instale a necessária pelo gerenciador uv. A regra principal é não escolher uma versão que tenha menos de um ano de suporte restante.
| Situação | O que instalar |
|---|---|
| Aprendendo a linguagem do zero | a estável mais recente (3.15) |
| Projeto novo | a mais recente ou a penúltima |
| Biblioteca não suporta a novidade | a secundária anterior |
| Projeto antigo na 3.10 ou inferior | planejar a migração para uma versão suportada |
| Código em Python 2 | migrar para o Python 3 |
Como descobrir a versão do Python
No terminal basta um comando. No macOS e no Linux normalmente se usa python3; no Windows, python ou o lançador py.
$ python3 --version
Python 3.12.3 # versão antiga — hora de atualizar
$ python3 -V
Python 3.15.0
No Windows, o lançador mostra todas as versões instaladas de uma vez, e o uv mostra as versões que ele enxerga e pode instalar:
py --list
uv python list
Dentro de um programa, a versão é fornecida pelo módulo sys. A tupla sys.version_info é cômoda para comparação, para que o script verifique sozinho se o interpretador serve para ele:
import sys
print(sys.version) # string completa com a data de build
print(sys.version_info[:3]) # por exemplo (3, 15, 0)
if sys.version_info < (3, 10):
raise SystemExit("É necessário Python 3.10 ou mais novo")
Se o comando python3 --version mostra uma versão diferente da que você instalou, significa que o PATH encontra primeiro outro interpretador. Para ver qual é, use which python3 no macOS e no Linux ou where python no Windows.
Várias versões do Python no mesmo computador
Ter a 3.13 e a 3.15 lado a lado é normal: cada uma é instalada em sua própria pasta. Gerenciar essas versões é mais fácil com o uv: uv python install 3.15 baixa a versão, e uv python pin 3.15 a fixa para o projeto no arquivo .python-version. O Python do sistema no Linux é melhor não tocar nem atualizar manualmente — é nele que rodam as utilidades do próprio sistema operacional.
A versão mínima do projeto é indicada no pyproject.toml, no campo requires-python. Assim, o instalador de pacotes não deixa instalar o projeto em um interpretador inadequado.
[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"
Resumo
As versões atuais do Python pertencem à linha 3, e a mais nova é a 3.15, com lazy import, frozendict e UTF-8 por padrão. O Python 2 terminou em 2020, e a 3.10 sai de suporte em outubro de 2026, por isso estudar e começar projetos vale na versão recente. Para verificar a sua, use python3 --version. Em cada tema do curso há um bloco "O que há de novo em 3.10–3.15", então as mudanças de versão são vistas na prática.
Perguntas frequentes
O que é o IDLE Python 3.10 64-bit no menu Iniciar?
É o ambiente de desenvolvimento simples que o instalador do python.org adiciona; o nome indica a versão do interpretador e a arquitetura. Se aparece 3.10, você tem uma versão cujo suporte está terminando — é melhor instalar uma mais recente.
Dá para atualizar do Python 3.12 para o 3.15 por cima?
Versões secundárias são instaladas lado a lado, e não por cima: depois de instalar a 3.15 a antiga continua existindo, e pode ser removida separadamente. As bibliotecas precisam ser instaladas de novo na nova versão, ou o ambiente virtual deve ser recriado.
Qual é a diferença entre as versões de 64 e 32 bits?
A versão de 64 bits pode usar mais memória e serve para todos os computadores modernos; a de 32 bits é escolhida apenas para sistemas muito antigos.
Para que servem as versões alfa e beta?
São builds preliminares da próxima versão, para testar bibliotecas e projetos; para estudar e trabalhar, use apenas as versões finais.
Este tema é abordado em profundidade, com prática, no curso “Python 3.15: от новичка до профи”.
Ir para o curso