Python Introdução

O Python (lê-se "páiton") é uma linguagem de programação criada para ser fácil de ler e de escrever. Um programa em Python parece quase uma lista de instruções em inglês simples, e por isso ele é a primeira linguagem de muita gente, de crianças na escola a cientistas. Mas não se engane com a simplicidade: o mesmo Python roda sites enormes, analisa dados de empresas, controla robôs e treina inteligências artificiais. Nesta aula você vai entender o que é programar, como o Python funciona por dentro, de onde ele veio e onde ele está hoje.

Você vai aprender
  • O que é programar e o que é uma linguagem de programação.
  • O que quer dizer que o Python é uma linguagem interpretada.
  • Por que o Python é considerado fácil, comparando com outra linguagem.
  • A história: Guido van Rossum, o nome tirado de um programa de humor e as versões 2 e 3.
  • Onde o Python é usado hoje.
  • O "Zen do Python", a filosofia escondida dentro da linguagem.
  • A sua primeira mensagem de erro de verdade, e como ler o que ela diz.

Primeiro: o que é programar?

Um computador não "entende" nada sozinho. Ele só sabe seguir instruções, uma de cada vez, muito rápido. Programar é escrever essas instruções. Uma linguagem de programação é o idioma combinado entre você e o computador: um conjunto pequeno de palavras e símbolos, com regras rígidas sobre onde cada coisa vai.

Pense numa receita de bolo. Ela tem uma lista de passos, em ordem: "pré-aqueça o forno", "misture os ovos com o açúcar", "se a massa estiver grossa, acrescente leite", "bata até ficar lisa". Um programa é igual: uma lista de passos, alguns com decisões ("se…") e outros com repetições ("até…"). A diferença é que o computador segue a receita ao pé da letra. Uma pessoa entende "açucar" sem acento; o computador, não. Se você escrever prnt em vez de print, ele não adivinha o que você quis dizer: ele para e reclama. Essas reclamações são as mensagens de erro, e este guia vai ensinar você a ler cada uma delas.

Veja um programa Python de verdade. É a lista de compras da Ana:

compras = ["arroz", "feijão", "café"]
for item in compras:
    print("Comprar:", item)

Mesmo sem saber nada de Python, dá para desconfiar do que ele faz: guarda três itens numa lista chamada compras e, para cada item (for item in compras), mostra na tela (print, "imprimir") a palavra "Comprar:" e o item. A Ana rodou o programa no terminal do computador dela:

$ python3 lista.py
Comprar: arroz
Comprar: feijão
Comprar: café

Você não precisa entender cada detalhe agora: a lista tem aula própria (Listas), o for também (for), e o print é o assunto de print(). Por enquanto, repare em como o programa é curto e quase se lê em voz alta.

Você mesmo pode rodar esse programa aqui, sem instalar nada. As caixas Experimente do guia rodam Python de verdade, dentro do navegador (a aula O Editor do Guia mostra tudo o que elas fazem):

Missão: rode o programa como está. Depois, acrescente "leite" à lista (dentro dos colchetes, depois de "café", separado por vírgula) e rode de novo: deve aparecer uma quarta linha, Comprar: leite.

compras = ["arroz", "feijão", "café"]
for item in compras:
    print("Comprar:", item)
compras = ["arroz", "feijão", "café", "leite"]
for item in compras:
    print("Comprar:", item)

Você mudou um dado (a lista) e o programa se adaptou sozinho, sem você mexer nas outras linhas. Essa é a graça de programar: escrever a receita uma vez e usá-la com outros ingredientes.


O Python é uma linguagem interpretada

O processador do computador (a CPU, o "cérebro") não entende português, nem inglês, nem Python. Ele só entende código de máquina: sequências de números que querem dizer coisas como "some estes dois valores" ou "guarde isto na memória". Alguém precisa traduzir o texto do programa para essa língua. Existem dois jeitos de fazer isso:

JeitoComo funcionaComparaçãoExemplos
CompilarUm programa chamado compilador traduz o texto inteiro antes, uma vez só, e gera um arquivo executável, que depois roda sozinho.Traduzir um livro inteiro e imprimir a tradução. Quem lê a versão traduzida não precisa do tradutor.C, C++, Rust, Go
InterpretarUm programa chamado interpretador lê o texto e vai executando as instruções, toda vez que o programa roda.Um intérprete numa palestra, traduzindo frase por frase enquanto a pessoa fala. Sem o intérprete na sala, ninguém entende.Python, JavaScript, PHP, Ruby

O Python é interpretado. O seu programa é um arquivo de texto comum, terminado em .py, e quem o executa é o interpretador, um programa que, no Linux, se chama python3. Foi ele que a Ana chamou no terminal (python3 lista.py): "interpretador, leia o arquivo lista.py e faça o que está escrito". A aula Rodando um Programa (.py) mostra isso passo a passo.

O interpretador mais usado (o que vem no Linux, o do site oficial e o do editor do guia) se chama CPython, porque é escrito na linguagem C. O próprio Python confirma:

$ python3 -c "import sys; print(sys.implementation.name)"
cpython                                             « o nome do interpretador, em minúsculas

(O -c manda o python3 rodar o texto que vem logo depois, em vez de um arquivo. É um atalho para testar uma linha só.)

O lado bom e o lado ruim

A interpretação traz uma vantagem enorme para quem está aprendendo: você escreve, roda e vê o resultado na hora, sem uma etapa de compilação no meio. Dá até para conversar com o Python linha por linha, no modo interativo (>>>). O preço é a velocidade: em contas muito pesadas, um programa Python costuma ser bem mais lento que o mesmo programa em C. Na prática, isso raramente atrapalha, porque as bibliotecas que fazem o trabalho pesado (de ciência de dados e de inteligência artificial, por exemplo) são escritas em C por baixo, e o Python só "dá as ordens".

Uma tradução escondida

Para ser exato: antes de executar, o CPython traduz o seu programa para um formato intermediário, o bytecode, que é mais rápido de executar do que o texto. Isso acontece sozinho, em milésimos de segundo, toda vez que você roda o programa. Às vezes você vai ver uma pasta chamada __pycache__ aparecer ao lado dos seus arquivos: é ali que o Python guarda essa tradução para reaproveitar. Pode ignorar (ou apagar; ele refaz quando precisar).


Por que dizem que o Python é fácil

Compare o programa mais simples que existe, o que escreve uma frase na tela, em duas linguagens. Em C:

#include <stdio.h>

int main(void) {
    printf("Olá, mundo!\n");
    return 0;
}

Em Python:

print("Olá, mundo!")
$ python3 ola.py
Olá, mundo!

Uma linha. Sem #include, sem main, sem chaves, sem ponto e vírgula, sem compilar. Isso não quer dizer que o C seja ruim (ele é ótimo no que faz: veja o Guia C), mas mostra a escolha do Python: deixar o programa limpo, para que você pense no problema, e não na pontuação.

Três características explicam essa fama:

  • Pouca pontuação. Onde outras linguagens usam chaves { } para agrupar instruções, o Python usa a própria indentação (o recuo do texto na linha). O programa é obrigado a ficar organizado. A aula Sintaxe e Indentação explica essa regra, que é a mais famosa do Python.
  • Palavras em inglês simples. if ("se"), for ("para"), in ("em"), and ("e"), not ("não"), True ("verdadeiro"). Muito programa Python se lê como uma frase.
  • "Pilhas incluídas" (batteries included). O Python vem com uma biblioteca padrão gigante: ferramentas prontas para datas, contas, arquivos, sorteios, internet, planilhas CSV e muito mais. Para muita coisa, você não precisa instalar nada além do próprio Python.

Um pouco de história

No Natal de 1989, o programador holandês Guido van Rossum trabalhava num instituto de pesquisa em Amsterdã, o CWI, e queria um projeto para passar o tempo nas férias. Ele resolveu criar uma linguagem nova, que fosse mais fácil de usar do que o C e mais poderosa do que os "scripts" do terminal. Em fevereiro de 1991, publicou a primeira versão.

E o nome? Não tem nada a ver com a cobra. Guido era fã do Monty Python's Flying Circus, um programa de humor britânico dos anos 1970, e queria um nome curto, diferente e um pouco misterioso. (A cobra do logotipo veio depois, porque era inevitável.) Até hoje a documentação oficial tem piadas do grupo escondidas nos exemplos: em vez de foo e bar, os nomes usados por programadores do mundo inteiro, ela usa spam e eggs, de um esquete famoso.

AnoO que aconteceu
1989Guido van Rossum começa a criar o Python, nas férias de fim de ano.
1991Sai a primeira versão pública, a 0.9.0.
1994Python 1.0.
2000Python 2.0.
2008Python 3.0: uma revisão grande, que corrigiu defeitos antigos, mas deixou de ser compatível com o Python 2 (um programa escrito para um nem sempre roda no outro).
2018Guido deixa o posto de "ditador benevolente vitalício" (o apelido que a comunidade dava a ele). Desde então, a linguagem é decidida por um conselho de cinco pessoas eleitas.
2020Fim do Python 2: a partir de 1º de janeiro, ele não recebe mais correções.
2025Sai o Python 3.14, a versão que este guia ensina (o "π-thon", por causa do 3,14). Desde 2020, sai uma versão nova todo mês de outubro.

Python 2 e Python 3: por que o comando é python3

A troca do Python 2 para o Python 3 demorou mais de dez anos, e durante esse tempo os dois conviveram no mesmo computador. Para não confundir, o Linux passou a chamar o novo de python3. O Python 2 morreu, mas o nome ficou: no Ubuntu, o comando é python3, e o comando python, sozinho, nem existe (a aula Instalar o Python mostra o que acontece se você digitar). Os números depois do 3 são as versões: 3.12, 3.13, 3.14… Todas são "Python 3", e um programa escrito para uma roda nas seguintes quase sempre sem mudar nada.

A Ana conferiu a versão do computador dela:

$ python3 --version
Python 3.14.4                                       « Python 3, versão 3.14 (a revisão 4 da 3.14)

Onde o Python está hoje

O Python é uma das linguagens mais usadas do mundo. Ele aparece em quase todo lugar onde alguém precisa resolver um problema rápido, ou lidar com muitos dados:

OndeExemplosPor que Python
AutomaçãoRenomear mil fotos de uma vez, juntar planilhas, mandar relatórios por email, baixar dados de um site todo dia.Um programa de poucas linhas resolve uma tarefa que levaria horas à mão.
Ciência de dadosAs bibliotecas pandas (tabelas), NumPy (contas com muitos números) e Matplotlib (gráficos), e os cadernos Jupyter, onde texto, código e gráfico ficam juntos.Analistas e cientistas querem pensar nos dados, não na linguagem.
Inteligência artificialPyTorch e TensorFlow, as ferramentas mais usadas para treinar modelos de aprendizado de máquina.O Python dá as ordens; as contas pesadas rodam em C e na placa de vídeo.
Sites e sistemasOs frameworks Django e Flask. O Instagram, por exemplo, foi construído com Django.Escrever e mudar rápido, com muita coisa pronta.
O próprio LinuxMuitos programas do sistema são escritos em Python. Um deles você vai conhecer na próxima aula: a mensagem que o Ubuntu mostra quando você digita um comando que não existe.É fácil de manter e já vem instalado.
Dentro de outros programasO Blender (modelos 3D), o GIMP (imagens) e o LibreOffice (escritório) deixam você criar extensões e automatizar tarefas em Python.Uma linguagem fácil para quem não é programador profissional.
EscolasÉ a linguagem de muitos cursos introdutórios de programação, e das plaquinhas Raspberry Pi e micro:bit usadas em sala de aula.Dá para fazer algo útil já na primeira aula.

Aquele programa do Ubuntu, o que sugere o pacote quando você digita um comando que não existe, é mesmo um programa Python. A primeira linha dele diz quem deve executá-lo:

$ head -1 /usr/lib/command-not-found
#!/usr/bin/python3                                  « "quem lê este arquivo é o python3"
$ file /usr/lib/command-not-found
/usr/lib/command-not-found: Python script, ASCII text executable

(O head -1 mostra a primeira linha de um arquivo, e o file diz que tipo de arquivo ele é: "script Python". Essa linha esquisita, que começa com #!, tem nome e você vai aprender a usá-la na aula Rodando um Programa (.py).)


O Zen do Python

Em 1999, o programador Tim Peters resumiu a filosofia do Python em 19 frases curtas. Elas ficaram tão famosas que viraram parte da própria linguagem: estão guardadas dentro do Python, e aparecem quando você pede import this ("importe isto"):

$ python3 -c "import this"
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Algumas, traduzidas, que vão aparecer o tempo todo neste guia:

Em inglêsEm portuguêsO que quer dizer na prática
Beautiful is better than ugly.Bonito é melhor que feio.Capriche na aparência do código: espaços, nomes, organização.
Simple is better than complex.Simples é melhor que complexo.Entre duas soluções que funcionam, escolha a mais simples.
Readability counts.A legibilidade conta.Código é lido muito mais vezes do que é escrito. Escreva para quem vai ler (inclusive você, daqui a um mês).
Errors should never pass silently.Erros nunca devem passar em silêncio.Quando algo dá errado, o Python avisa, em vez de seguir com um resultado errado. Por isso ele mostra tantas mensagens de erro: elas são amigas.
In the face of ambiguity, refuse the temptation to guess.Diante da ambiguidade, recuse a tentação de adivinhar.Se o Python não tem certeza do que você quis, ele não chuta: ele pergunta (com um erro).
Although that way may not be obvious at first unless you're Dutch.Embora esse jeito possa não ser óbvio no começo, a não ser que você seja holandês.Uma piada com o Guido, que é holandês.

Experimente: clique em Rodar e leia o Zen do Python no próprio editor. Ele está dentro de todo Python, inclusive do que roda no seu navegador.

import this

Python e outras linguagens

Quem começa a estudar programação ouve falar de muitas linguagens. Cada uma brilha num lugar diferente:

PythonJavaScriptC
Nasceu1991, Guido van Rossum1995, Brendan Eich1972, Dennis Ritchie
Como rodaInterpretado (pelo python3)Interpretado (pelo navegador ou pelo Node.js)Compilado para código de máquina
Agrupa instruções comIndentação (o recuo)Chaves { }Chaves { }
Olá, mundoprint("Olá")console.log("Olá");printf("Olá\n"); (dentro de main)
VelocidadeMédia; alta quando usa bibliotecas escritas em CAltaMuito alta
Famoso porAutomação, dados, inteligência artificial, ensinoPáginas da web (é a única linguagem que todo navegador entende)Sistemas operacionais, aparelhos eletrônicos

Nenhuma é "a melhor": cada uma resolve um tipo de problema. E a boa notícia é que as ideias de programação (variáveis, decisões, repetições, funções) são as mesmas em todas. Quem aprende a programar em Python aprende qualquer outra linguagem muito mais rápido.


Quando dá errado

Você ainda não escreveu programas, mas já dá para conhecer duas confusões muito comuns de quem está começando. E a primeira traz a sua primeira mensagem de erro de verdade.

Um código antigo, de Python 2

A Ana achou na internet um tutorial antigo, copiou o "Olá, mundo" de lá e salvou como antigo.py:

print "Olá, mundo!"

No Python 3, ele não roda:

$ python3 antigo.py
  File "/home/ana/antigo.py", line 1
    print "Olá, mundo!"
    ^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

As mensagens do Python saem em inglês, mesmo num computador em português. O guia traduz e explica cada uma. Esta, linha por linha:

File "/home/ana/antigo.py", line 1
"Arquivo /home/ana/antigo.py, linha 1": onde está o problema. O Python diz o arquivo e o número da linha.
print "Olá, mundo!"
A própria linha com problema, copiada do seu arquivo, para você não precisar procurar.
^^^^^^^^^^^^^^^^^^^
Os acentos circunflexos ficam embaixo do trecho exato que o Python não aceitou, como alguém sublinhando a palavra errada numa prova.
SyntaxError
O tipo do erro: "erro de sintaxe". Sintaxe é a gramática da linguagem; o Python não conseguiu nem entender a frase.
Missing parentheses in call to 'print'.
"Faltam os parênteses na chamada do print."
Did you mean print(...)?
"Você quis dizer print(...)?" O Python dá a dica do conserto.

O que aconteceu: no Python 2, o print era escrito sem parênteses. No Python 3, ele virou uma função, e toda função leva parênteses (aula print()). O tutorial era de antes de 2008.

Como resolver: coloque os parênteses: print("Olá, mundo!"). E, para estudar, prefira material de Python 3. Se um tutorial usa print sem parênteses, ele é de Python 2: procure outro.

"Dei dois cliques no arquivo .py e só abriu um texto"

O que aconteceu: nada de errado. Um arquivo .py é só texto, o "código-fonte" do programa. No Linux, dois cliques nele abrem um editor de texto, como abririam uma receita salva no computador. A receita não faz o bolo sozinha: alguém precisa ler e executar.

Como resolver: quem executa é o interpretador. Abra o terminal e rode python3 arquivo.py (aula Rodando um Programa (.py)), ou use as caixas Experimente do guia, que rodam o programa com um clique.

Missão: veja com os próprios olhos a mensagem do Python 2. Apague os dois parênteses do print (deixe print "Olá, mundo!") e clique em Rodar. A caixa deve mostrar o SyntaxError com a dica Did you mean print(...)?. Depois, ponha os parênteses de volta e rode de novo.

print("Olá, mundo!")
print "Olá, mundo!"

Errar de propósito é um ótimo jeito de aprender: você fica conhecendo a mensagem antes de precisar dela de verdade.


O que você vai conseguir fazer

Ao terminarVocê consegue
Nível 1 · InicianteEscrever e rodar programas que mostram coisas na tela, leem o que a pessoa digita, guardam valores em variáveis, fazem contas, trabalham com textos, tomam decisões (if) e repetem tarefas (for e while). Ler as mensagens de erro do Python.
Nível 2 · IntermediárioOrganizar dados em listas, tuplas, conjuntos e dicionários, criar as suas próprias funções, tratar erros com try, ler e gravar arquivos (texto, CSV e JSON), usar módulos e instalar pacotes com o pip.
Nível 3 · AvançadoCriar classes e objetos, usar geradores, decoradores e outras ferramentas poderosas da linguagem, e escrever programas maiores e mais organizados.
ProjetosJuntar tudo em programas completos, como os da vida da Ana: a lista de compras, as notas da turma, o estoque da lojinha.

Para fechar, rode o seu primeiro programa da aula:

Missão: o programa já escreve a primeira linha. Complete a segunda: troque ??? pelo seu nome e coloque um ! depois de Python, para a saída ficar Meu nome é Ana e eu vou aprender Python! (com o seu nome no lugar de Ana).

print("Olá! Este é o meu primeiro programa em Python.")
print("Meu nome é ??? e eu vou aprender Python")
print("Olá! Este é o meu primeiro programa em Python.")
print("Meu nome é Ana e eu vou aprender Python!")

Repare que cada print escreveu numa linha nova, sozinho. No Python, você não precisa avisar onde a linha acaba. A aula Seu Primeiro Programa conta isso e muito mais.


Exercícios

1. O que quer dizer que o Python é uma linguagem interpretada?

2. De onde vem o nome "Python"?

3. A Ana rodou um programa e recebeu SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?. O que provavelmente aconteceu?

4. Qual destas frases é verdadeira?

5. Numa mensagem de erro do Python, para que servem os ^^^^?

6. O comando do interpretador

No Ubuntu, qual é o comando que roda um programa Python? Complete:

$ lista.py

7. A extensão

Os arquivos de programa Python terminam com qual extensão? Complete:

lista

8. O Zen escondido

Qual instrução mostra o Zen do Python? Complete:

import

Resumo

  • Programar é escrever instruções, como uma receita que o computador segue ao pé da letra; quando algo não faz sentido, ele mostra uma mensagem de erro.
  • O Python é interpretado: o programa é um arquivo de texto .py, e quem o executa é o interpretador python3 (o CPython, escrito em C).
  • Ele é famoso por ser fácil de ler: pouca pontuação, indentação no lugar das chaves, palavras em inglês simples e uma biblioteca padrão enorme.
  • Foi criado por Guido van Rossum, a partir de 1989 (primeira versão em 1991). O nome vem do Monty Python, não da cobra.
  • O Python 2 acabou em 2020. Hoje tudo é Python 3, e o comando no Linux é python3. Este guia ensina o 3.14.
  • Ele está na automação, na ciência de dados, na inteligência artificial, em sites, no próprio Ubuntu e nas escolas.
  • As mensagens de erro saem em inglês e dizem o arquivo, a linha, o trecho (^^^^), o tipo do erro e, muitas vezes, uma dica.
  • Próximo passo: ter o Python no seu computador, em Instalar o Python.