Capítulo 1 — Primeiros passos: do pensamento lógico ao primeiro programa
Bem-vindo ao universo da programação! Você está prestes a aprender uma habilidade que vai mudar a forma como você vê o mundo ao seu redor. Antes de ligar o computador, vamos começar do zero — e quando digo zero, é zero mesmo: nem Python instalado, nem um programa escrito. Mas temos algo melhor: perguntas.
Você já parou para pensar em como um aplicativo funciona? Como o seu navegador sabe exatamente o que você quer quando você digita? Como o Spotify consegue recomendar uma música que você adora escutando outras? Tudo isso é código. E código, no fundo, é só um conjunto de instruções muito precisas que o computador segue, uma depois da outra.
Neste capítulo, vamos começar bem na base. Vamos entender o que faz o computador ser tão "inteligente" (spoiler: ele não é inteligente, apenas muito obediente), instalar o Python no seu computador e escrever os primeiros programas. E não espere até o capítulo 5 para ver algo visual — vamos desenhar formas no computador usando a biblioteca Turtle ainda neste capítulo.
1. O que é pensamento computacional?
Sabe aquele momento em que você tenta explicar para um amigo como chegar à sua casa e precisa ser super preciso? "Vai direto, depois vira à direita no semáforo, sobe a rua dois quadras, fica à esquerda do lado do açougue..." Se você deixa algo fora, seu amigo se perde. Pois é: computadores são assim também — mas muito, muito piores. Eles fazem exatamente o que você manda, nem mais, nem menos. Se você esquecer um passo, o computador não tira do ar; ele simplesmente não consegue.
Um algoritmo é uma sequência de passos que resolve um problema. Nem precisa ser código de computador. A receita do bolo da sua avó é um algoritmo. O roteiro de um jogo é um algoritmo. As instruções de como montar um LEGO são um algoritmo. Pensamento computacional é a habilidade de descrever essas sequências de forma clara e sem ambiguidades, de modo que qualquer pessoa (ou máquina) consiga seguir.
Algoritmos no cotidiano
Pense em tudo que você já fez hoje. Acordou: algoritmo. Tomou banho: algoritmo (lista seus passos e verá que há uma ordem específica — você não lava o cabelo depois de sair do chuveiro, né?). Preparou café: algoritmo. Até jogar um videogame envolve algoritmos — "se a vida > 0, continua jogando; senão, game over".
Vamos ver um exemplo concreto. Suponha que você quer fazer um sanduíche. Aqui está um algoritmo:
1. Pegar dois pedaços de pão
2. Passar manteiga em um deles
3. Colocar queijo em cima
4. Colocar presunto
5. Colocar o outro pão em cima
6. Cortar na diagonal
7. Comer
Parece óbvio, certo? Mas note que cada linha é uma ação específica que leva à próxima. E repare também que você não poderia fazer a linha 6 antes da linha 5 — a ordem importa. Isso é verdade também em programação. O computador vai ler seu código linha por linha, e se a ordem estiver errada, o resultado fica estranho (ou o programa quebra).
Decomposição, padrões e abstração
Mas espera — e se você quisesse fazer dez sanduíches? Repetir todo o algoritmo dez vezes seria chato. É aqui que entra a decomposição: você quebra o problema maior em partes menores.
Fazer dez sanduíches pode virar:
Para cada sanduíche (faça isso 10 vezes):
1. Pegar dois pedaços de pão
2. Passar manteiga em um deles
3. Colocar queijo em cima
4. Colocar presunto
5. Colocar o outro pão em cima
6. Cortar na diagonal
7. Comer todos os sanduíches
Pronto — você acabou de aprender o conceito de um laço de repetição! (No capítulo 4, vamos aprender a escrever isso em código, mas a ideia já está aí.)
Também existe a abstração: você não precisa pensar em cada detalhe toda vez. "Fazer um sanduíche" vira uma caixa preta — você sabe que funciona, mas não precisa decompor em cada passo. Programadores fazem isso o tempo todo: usam funções prontas como print() sem pensar no que ela faz por dentro.
E existe o reconhecimento de padrões: você nota que "passar manteiga" e "colocar queijo" são operações parecidas (ambas: pegar um ingrediente e colocar no pão). Em vez de descrever cada uma de forma diferente, você poderia abstrair como "adicionar ingrediente X". Padrões = menos repetição = menos chance de erro.
2. O que é programação e por que aprender Python?
Programação é a arte de conversar com o computador em uma linguagem que ele entende. Você diz o que quer que ele faça, e ele faz. Python é uma dessas linguagens.
Mas por que Python? Existem dezenas de linguagens de programação (Java, C, JavaScript, C#, Go...). Python é escolhida para este curso porque:
-
Ler Python é como ler inglês simplificado. Você consegue entender o que um código Python faz sem nunca ter visto antes. Compare com C ou Java, que têm sintaxe mais "críptica". Python reduz a distância entre pensar e codificar.
-
Python é poderoso. Apesar de ser simples de ler, você consegue fazer coisas incríveis com Python. Cientistas usam Python para análise de dados, empresas gigantes como Spotify usam Python nos servidores, jogos e apps usam Python.
-
Python é gratuito e multiplataforma. Funciona no Windows, Mac, Linux. Não precisa comprar nada.
-
A comunidade é gigante. Qualquer dúvida que tiver, alguém já teve antes e a resposta está na internet.
Python na vida real
Quer alguns exemplos? Em ciência de dados, pesquisadores usam Python para analisar bilhões de dados sobre clima, genética, economia. Em web, empresas como Pinterest e Spotify usam Python para fazer o site funcionar. Em automação, você pode escrever um script Python que abre seu navegador, preenche formulários e envia emails — tudo sozinho. Em jogos, desenvolvedores usam Python para criar protótipos rápidos. No capítulo 7, você já vai estar tocando os pés nesse mundo de automação.
3. Instalando o Python
Chega de teoria. Vamos colocar Python no seu computador. Se você está usando uma plataforma web para executar código (como Replit ou um IDE online), pule esta seção — já está tudo pronto para você.
Download e instalação no Windows
-
Abra seu navegador e acesse www.python.org/downloads
-
Você verá um grande botão amarelo dizendo "Download Python 3.x.x". Clique nele. (A versão exata pode variar — qualquer coisa de Python 3.9 em diante serve.)
-
Após baixar, abra o arquivo
.exeque foi baixado. -
Muito importante: Na primeira tela da instalação, marque a caixa que diz "Add Python to PATH". Isso permite que você rode Python do terminal sem complicações. Sem isso, a vida fica mais difícil.
-
Clique em "Install Now" e espere terminar.
-
Na última tela, você pode clicar em "Disable path length limit" — isso às vezes evita erros futuros, mas é opcional.
Verificando a instalação
Abra o terminal (ou Prompt de Comando): - Windows: Procure por "cmd" no menu de início e abra. - Mac/Linux: Abra o Terminal.
Digite:
python --version
Se aparecer algo como Python 3.10.0 (a versão exata não importa), parabéns! Python está instalado.
Se aparecer "comando não encontrado" ou um erro, volte na instalação e verifique se marcou "Add Python to PATH".
Conhecendo o IDLE: modo interativo vs. modo script
O Python funciona de dois jeitos:
Modo interativo: você digita um comando, o Python executa na hora e mostra o resultado. É tipo uma calculadora. Você abre o IDLE (que vem com o Python) ou o terminal e começa a digitar.
Modo script: você escreve um programa inteiro em um arquivo, salva como .py, e o Python executa tudo de uma vez. É como guardar a receita do bolo para fazer depois.
Para abrir o IDLE:
- Windows: Procure por "IDLE" no menu de início
- Mac/Linux: Abra terminal e digite python3 -m idlelib.idle
O IDLE abre uma janela com >>> esperando você digitar. Esse símbolo >>> significa "modo interativo, pronto para receber um comando".
4. Primeiros comandos no modo interativo
Vamos experimentar! Abra o IDLE e vamos brincar.
print(): exibindo mensagens na tela
O comando mais básico do Python é print(). Ele simplesmente exibe uma mensagem na tela.
>>> print("Olá, mundo!")
Olá, mundo!
Repare: você digita print("Olá, mundo!") e o Python exibe Olá, mundo! na linha de baixo, sem as aspas.
Pode colocar qualquer texto:
>>> print("Meu nome é Clarice")
Meu nome é Clarice
>>> print("Python é muito legal!")
Python é muito legal!
>>> print("42")
42
As aspas servem para dizer ao Python "isso é texto". O texto em si não aparece com aspas.
Você pode exibir várias mensagens, uma por linha, chamando print() várias vezes:
>>> print("Olá!")
Olá!
>>> print("Tudo bem?")
Tudo bem?
>>> print("Que legal!")
Que legal!
Repare que cada print() coloca o resultado em uma linha diferente. Python automaticamente pula de linha após cada print().
Python como calculadora: operadores matemáticos
Python consegue fazer contas. Esses são os operadores matemáticos básicos:
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
+ |
Adição | 3 + 5 |
8 |
- |
Subtração | 10 - 4 |
6 |
* |
Multiplicação | 6 * 7 |
42 |
/ |
Divisão | 15 / 3 |
5.0 |
// |
Divisão inteira (sem decimais) | 15 // 4 |
3 |
% |
Módulo (resto da divisão) | 15 % 4 |
3 |
** |
Potenciação (elevar à potência) | 2 ** 8 |
256 |
Teste no IDLE:
>>> 2 + 3
5
>>> 10 - 7
3
>>> 4 * 5
20
>>> 20 / 4
5.0
>>> 20 // 4
5
>>> 20 % 3
2
>>> 2 ** 10
1024
Repare a diferença entre / e //:
- 20 / 4 dá 5.0 (com decimal, mesmo que seja exato)
- 20 // 4 dá 5 (sem decimal)
- 20 / 3 dá 6.666... (decimal)
- 20 // 3 dá 6 (descarta o decimal)
O módulo (%) retorna o resto da divisão:
- 20 % 3 → 20 dividido por 3 é 6, com resto 2 → resultado: 2
- 15 % 5 → 15 dividido por 5 é 3, com resto 0 → resultado: 0
Módulo é muito útil em programação. Por exemplo, para saber se um número é par, você verifica se numero % 2 == 0 (resto zero).
Você pode combinar operadores:
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
Repare que 2 + 3 * 4 dá 14, não 20. Isso porque Python segue a mesma ordem de operações da matemática: multiplicação antes de adição. Se quer somar antes, coloque parênteses.
Strings: texto entre aspas
Um "texto" em programação é chamado de string. No Python, você coloca texto entre aspas (simples ou duplas, tanto faz):
>>> "Olá"
'Olá'
>>> 'Mundo'
'Mundo'
>>> "Python"
'Python'
Repare que o Python mostra com aspas simples por padrão, mas tanto " quanto ' funcionam igual.
Você pode exibir strings com print():
>>> print("São Paulo")
São Paulo
>>> print('Python 3.10')
Python 3.10
Se a string tiver apóstrofo, cuidado:
# ERRADO — Python acha que a string terminou no apóstrofo
>>> print('Maria's friend')
SyntaxError: invalid syntax
# CERTO — use aspas duplas
>>> print("Maria's friend")
Maria's friend
# OU — escape o apóstrofo com \
>>> print('Maria\'s friend')
Maria's friend
5. Escrevendo o primeiro script
Até agora fizemos tudo no modo interativo (digitando linha por linha). Mas quando o programa fica maior, isso fica chato. Chegou a hora do modo script: escrever um arquivo inteiro e executar tudo de uma vez.
Criando e salvando um arquivo .py
-
Abra um editor de texto simples (Bloco de Notas, VS Code, PyCharm — não importa, desde que não seja Word):
-
Escreva:
print("Olá, mundo!")
print("Meu nome é Clara")
print("Estou aprendendo Python")
-
Salve o arquivo com o nome
primeiro_programa.py(a extensão.pyé importante!) -
Escolha uma pasta onde vai guardar — pode ser sua Área de Trabalho ou a pasta Documentos.
Executando pelo IDLE
No IDLE, vá em File → Open e abra o arquivo que você acabou de criar. O arquivo aparece em uma nova janela.
Para executar, vá em Run → Run Module (ou pressione F5).
A saída aparece na janela do IDLE original:
Olá, mundo!
Meu nome é Clara
Estou aprendendo Python
Executando pelo terminal
Abra o terminal (ou Prompt de Comando) e navegue até a pasta onde guardou o arquivo. Depois digite:
python primeiro_programa.py
(Se no Mac/Linux, pode ser python3 em vez de python.)
E pronto! O programa executa:
Olá, mundo!
Meu nome é Clara
Estou aprendendo Python
Comentários: documentando o código com
Um comentário é uma linha que o Python ignora. Serve para deixar mensagens para você mesmo ou para outros programadores que vão ler seu código depois.
Para fazer um comentário, use o símbolo #:
# Isso é um comentário - Python ignora essa linha
print("Olá!") # Isso também é comentário (depois da linha)
# O programa vai exibir apenas:
# Olá!
Comentários são super úteis para explicar o que o código faz:
# Programa que calcula a tabuada do 5
print("Tabuada do 5")
print(5 * 1) # 5 x 1 = 5
print(5 * 2) # 5 x 2 = 10
print(5 * 3) # 5 x 3 = 15
Uma boa prática: deixe comentários para explicar por que você fez algo, não o que você fez. O "o quê" é óbvio olhando o código; o "porquê" geralmente não é.
# Ruim — comentário óbvio
x = 10 # atribui 10 a x
# Bom — comentário explica a intenção
x = 10 # idade mínima para dirigir no Brasil
6. Introdução ao Turtle
Até agora, tudo que fizemos foi texto. Mas programação pode ser visual! Vamos conhecer a Turtle, uma biblioteca do Python que deixa você desenhar na tela.
O que é a biblioteca Turtle e por que vamos usar ela
Turtle é uma biblioteca que simula uma tartaruga (turtle em inglês) andando em uma folha de papel. Você diz onde ela deve ir, e ela desenha o caminho. É como um Logo (uma linguagem de programação bem antiga, mas muito visual) dentro do Python.
Por que usar Turtle? Porque: 1. É divertido ver o código virar desenho na tela 2. Você aprende muito sobre sequência (fazer uma coisa depois da outra) e estrutura 3. É fácil entender — basta pensar em como você se moveria em uma folha de papel
Comandos básicos: forward(), right(), left(), backward()
Aqui estão os quatro comandos que você precisa para começar:
| Comando | O que faz | Exemplo |
|---|---|---|
forward(distância) |
Anda para frente | t.forward(100) — anda 100 passos para frente |
backward(distância) |
Anda para trás | t.backward(50) — anda 50 passos para trás |
left(ângulo) |
Vira para a esquerda | t.left(90) — vira 90 graus para a esquerda |
right(ângulo) |
Vira para a direita | t.right(45) — vira 45 graus para a direita |
Um exemplo bem simples:
import turtle
t = turtle.Turtle()
t.forward(100) # anda 100 para frente
t.left(90) # vira 90 graus para a esquerda
t.forward(100) # anda mais 100
turtle.done() # mantém a janela aberta
A primeira linha import turtle diz ao Python "quero usar a biblioteca Turtle".
A segunda linha t = turtle.Turtle() cria uma tartaruga chamada t.
As linhas seguintes mandam a tartaruga fazer coisas.
A última linha turtle.done() mantém a janela aberta — sem ela, a janela fecha instantaneamente.
Desenhando um quadrado
Um quadrado tem 4 lados iguais e ângulos de 90 graus. Para desenhar um quadrado andando para frente e virando:
import turtle
t = turtle.Turtle()
# Lado 1
t.forward(100)
t.left(90)
# Lado 2
t.forward(100)
t.left(90)
# Lado 3
t.forward(100)
t.left(90)
# Lado 4
t.forward(100)
t.left(90)
turtle.done()
Veja o padrão? Você anda 100, vira 90 graus, anda 100, vira 90 graus... quatro vezes. Isso desenha um quadrado.
Quando você roda esse código, uma janela abre e você vê um quadrado aparecendo! A tartaruga anda enquanto desenha. Legal, né?
Por que vira 90 graus em vez de 270? Porque o ângulo que você passa para left() é o ângulo externo. Imagine que você está andando: se você vira 90 graus para a esquerda, você está fazendo quase uma volta completa (270 graus de dentro). Para um quadrado, o ângulo externo é 90. (No capítulo 4, vamos entender isso melhor quando aprender repetição.)
Mudando cor e espessura do traço: color() e pensize()
Você pode deixar o desenho mais colorido:
import turtle
t = turtle.Turtle()
t.color("blue") # traço azul
t.pensize(3) # traço grosso (3 pixels)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
turtle.done()
t.color("blue") muda a cor do traço para azul. As cores são em inglês: "red", "green", "yellow", "black", "purple", "orange", etc.
t.pensize(3) muda a espessura do traço. Quanto maior o número, mais grosso.
Você também pode preencher o desenho com cor:
import turtle
t = turtle.Turtle()
t.color("red")
t.begin_fill()
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.end_fill()
turtle.done()
t.begin_fill() começa a "guardar" a forma que você vai desenhar. t.end_fill() termina e preenche tudo com a cor escolhida. O resultado é um quadrado vermelho sólido.
7. Prática com Turtle
Agora você vai praticar com o professor!
7.1. Desenhando um triângulo equilátero
Um triângulo equilátero tem 3 lados iguais. Cada ângulo interno é 60 graus, então o ângulo externo é 120 graus.
import turtle
t = turtle.Turtle()
t.speed(3) # velocidade da tartaruga (1-10, quanto maior mais rápido)
# Lado 1
t.forward(100)
t.left(120)
# Lado 2
t.forward(100)
t.left(120)
# Lado 3
t.forward(100)
t.left(120)
turtle.done()
Rode esse código e veja o triângulo ser desenhado. Repare que a tartaruga gira 120 graus em cada canto.
Pergunta para você: Se você quisesse um triângulo dentro de um quadrado, como você faria?
7.2. Desenhando uma letra do alfabeto
Vamos desenhar a letra "L" (bem simples):
import turtle
t = turtle.Turtle()
t.pensize(5)
# Traço vertical (parte longa do L)
t.forward(150)
# Volta para baixo
t.backward(150)
# Vira para a direita
t.right(90)
# Traço horizontal (parte curta do L)
t.forward(100)
turtle.done()
Aqui usamos backward() para voltar. A tartaruga desenha enquanto se move, então quando volta, desenha a volta também.
Tente agora a letra "T" (é um pouco mais complexa):
import turtle
t = turtle.Turtle()
t.pensize(5)
# Traço horizontal em cima (topo do T)
t.forward(100)
# Volta para o meio
t.backward(50)
# Vira para baixo
t.right(90)
# Traço vertical (haste do T)
t.forward(150)
turtle.done()
7.3. Desenhando uma casa simplificada
Uma casa é um quadrado (parede) com um triângulo em cima (telhado). Combine os dois!
import turtle
t = turtle.Turtle()
t.speed(2)
# Desenha o quadrado (parede)
t.forward(150)
t.left(90)
t.forward(150)
t.left(90)
t.forward(150)
t.left(90)
t.forward(150)
t.left(90)
# Agora desenha o triângulo (telhado)
# Primeiro, anda para o ponto certo
t.forward(150)
t.left(45) # ângulo de 45 para ficar no canto
# Desenha uma aba do telhado
t.forward(106) # um pouco menos que 150, por causa do ângulo
# Vira para a outra aba
t.left(90)
# Desenha a outra aba
t.forward(106)
turtle.done()
Desafio: faça a casa com cores — parede de uma cor e telhado de outra!
8. Exercícios
Agora é a sua vez! Resolva os exercícios abaixo. Se travar, releia a seção correspondente do capítulo.
a) Use o modo interativo do Python para calcular: - Quantos segundos tem um dia? (pista: 60 segundos em 1 minuto, 60 minutos em 1 hora, 24 horas em um dia) - E uma semana? - E um ano? (assuma 365 dias)
b) Escreva um script que exiba na tela, usando print(), seu nome, sua idade e o nome da sua escola, cada um em uma linha separada. Salve como apresentacao.py e execute pelo IDLE ou terminal.
c) Com o Turtle, desenhe um retângulo com 200 de largura e 100 de altura. Dica: um retângulo tem dois pares de lados iguais — dois lados de 200 e dois de 100.
d) Escreva um script que exiba na tela uma receita simples. Use print() para exibir o título da receita e pelo menos 5 passos. Exemplo:
Receita: Bolo de Chocolate
Ingredientes:
- 2 xícaras de farinha
- 1 xícara de açúcar
...
Modo de preparo:
1. Pré-aqueça o forno a 180°C
2. Misture os ingredientes secos
...
e) Com o Turtle, desenhe a letra "H" usando apenas forward(), backward(), right() e left(). (Dica: um "H" é basicamente dois traços verticais conectados por um traço horizontal no meio.)
f) Use o Python como calculadora para descobrir quanto é 2 elevado à potência 10. Use o operador **.
g) Com o Turtle, desenhe um triângulo retângulo (um que tem um ângulo de 90 graus). Dica: os ângulos internos de um triângulo retângulo podem ser 90, 45 e 45 graus (ou outras combinações).
h) Com o Turtle, desenhe três quadrados de tamanhos diferentes lado a lado, usando cores e espessuras de traço diferentes para cada um. Dica: após desenhar um quadrado, use penup() para levantar a caneta, goto(x, y) para se mover sem desenhar, e pendown() para desenhar de novo.
i) Escreva um script que exiba na tela uma "arte" feita com caracteres — por exemplo, um rosto ou um animal simples. Exemplo:
^_^
/ o o \
\ > /
\_/
Use vários print() para construir a arte linha por linha.
j) Com o Turtle, desenhe um envelope: um retângulo com um triângulo em cima, formando a aba do envelope. Use begin_fill() e end_fill() para preencher com cores.
9. Desafio de capítulo: desenho livre com formas geométricas
Crie um desenho usando a biblioteca Turtle combinando formas geométricas que você aprendeu: quadrados, triângulos, retângulos, letras. O desenho deve ser original (pode ser uma casa com árvore, uma paisagem, um robô, um animal — use a criatividade!).
Requisitos:
- O programa deve usar pelo menos 3 formas diferentes (quadrado, triângulo, retângulo, letra, etc.)
- Use pelo menos 2 cores diferentes
- Use
pensize()em pelo menos 2 lugares com espessuras diferentes - O código deve ter comentários explicando cada seção principal
- A janela do desenho deve permanecer aberta ao final (use
turtle.done())
Dica: Antes de codificar, desenhe no papel como você quer que fique. Pense em coordenadas simples. Por exemplo:
- Desenhe a base do desenho começando em (0, 0)
- Se move para a direita, use forward()
- Se precisa "pular" para outro lugar sem desenhar, use penup(), goto() e pendown()
Exemplo de início:
import turtle
t = turtle.Turtle()
t.speed(5)
# Desenha a base (um retângulo)
t.pensize(2)
t.color("brown")
# ... código aqui ...
# Desenha uma árvore (triângulo)
t.pensize(3)
t.color("green")
# ... código aqui ...
# Desenha o sol (círculo)
t.pensize(1)
t.color("yellow")
t.circle(30)
turtle.done()
Quando terminar, mostre para um colega e explique o que cada parte do código faz. Programação é muito mais legal quando você compartilha!