๐Ÿšฆ ๐Ÿค” ๐ŸŽฏ
Capรญtulo 03 ยท Bootcamp programa AI

Estruturas Condicionais

Hoje o computador aprende a decidir. Vocรช vai dominar if, else, elif e os operadores de comparaรงรฃo e lรณgicos โ€” e fazer o seu primeiro programa que pensa. ๐Ÿคฏ

๐ŸŽฏ if / else / elif โš–๏ธ == != > < ๐Ÿ”— and / or / not ๐Ÿ› BugZilla
๐Ÿšฆ
O poder das decisรตes
Hoje o seu programa comeรงa a pensar

Atรฉ agora seus programas seguiam um caminho sรณ, em linha reta: pega o nome โ†’ mostra o nome. Mas a vida real nรฃo รฉ assim โ€” a gente toma decisรตes o tempo todo:

๐Ÿšฆ
SE o sinal estiver verde, vocรช atravessa. Senรฃo, espera.
โ˜”
SE estรก chovendo, leva guarda-chuva. Senรฃo, vai sem.
๐Ÿ•
SE tem dinheiro, pede pizza. Senรฃo, faz miojo. ๐Ÿ˜…
A grande virada de hoje

Pela primeira vez, o seu programa vai olhar para um valor, pensar e escolher um caminho de execuรงรฃo. Ele deixa de ser uma esteira e vira um cruzamento ๐Ÿ›ฃ๏ธ.

E olha que coisa linda: tudo isso com 3 palavrinhas โ€” if, else, elif.

๐Ÿงฉ
Quiz de aquecimento โ€” Verdadeiro ou Falso?
Marca a tua aposta antes de seguir
1๏ธโƒฃ Todo bloco if sempre รฉ executado.
2๏ธโƒฃ O else รฉ opcional.
3๏ธโƒฃ Posso ter vรกrios elif em sequรชncia.
4๏ธโƒฃ Uso if para perguntar "quando?".
๐ŸŽฏ
O comando if
Se a condiรงรฃo for verdadeira, execute
O garรงom verificando o pedido

Imagina um garรงom ๐Ÿง‘โ€๐Ÿณ anotando seu pedido. Antes de mandar pra cozinha, ele pensa: "SE o cliente รฉ maior de idade, posso colocar a cerveja no pedido."

Ele verifica, e sรณ executa se a condiรงรฃo bater. ร‰ exatamente isso que o if faz.

๐Ÿ“ Sintaxe do if

if seguido da condiรงรฃo, dois pontos : e o bloco indentado:

controle_acesso.py Python
1
2
3
idade = 22

if idade >= 18:
    print("Pode entrar! ๐ŸŽ‰")
Run ยท controle_acesso.py
โš ๏ธ
Os dois pontos no fim do if sรฃo obrigatรณrios. E o print debaixo precisa estar indentado (4 espaรงos). Esse "andar pra dentro" รฉ como o Python sabe o que pertence ao bloco do if.
๐Ÿ›ฃ๏ธ E quando a idade รฉ menor?

Se mudarmos pra idade = 15, o if simplesmente รฉ pulado. Nada aparece na tela. Bora visualizar isso:

Entrada
idade = 15
Pergunta
idade >= 18 ?
nรฃo
Resultado
(if รฉ pulado) ๐Ÿค
๐Ÿ›ฃ๏ธ
O comando else โ€” "senรฃo"
O plano B do seu programa

E se a condiรงรฃo for falsa? A gente quer mostrar outra coisa. Pra isso existe o else โ€” em portuguรชs, "senรฃo".

controle_acesso.py Python
1
2
3
4
5
idade = int(input("Sua idade: "))

if idade >= 18:
    print("Pode entrar! ๐ŸŽ‰")
else:
    print("Volte com 18 anos. โ›”")
๐ŸŒณ Visualizando a รกrvore de decisรฃo

O programa olha a idade, faz a pergunta e segue um e sรณ um caminho. Veja a animaรงรฃo abaixo (autoplay ๐Ÿช„):

Entrada
idade = 22
Pergunta
idade >= 18 ?
verdadeiro โœ“
if
Pode entrar! ๐ŸŽ‰
falso โœ—
else
Volte com 18 anos โ›”
๐Ÿšฆ
Analogia do semรกforo: verde โ†’ atravessa. Vermelho โ†’ para. Sempre um dos dois โ€” nunca os dois ao mesmo tempo. ร‰ essa exclusividade que o if/else garante.
Run ยท controle_acesso.py
Sua idade:
๐ŸŽฏ
Bora Codar! โ€” pode_votar.py
Primeiro if/else juntos
๐ŸŽฏ
Desafio guiado pelo professor
Vamos fazer juntos ยท pode_votar.py

Bora consolidar: peรงa a idade do usuรกrio e diga se ela pode votar (idade >= 16).

pode_votar.py Python
1
2
3
4
5
idade = int(input("Sua idade: "))

if idade >= 16:
    print("๐Ÿ—ณ๏ธ Vocรช pode votar!")
else:
    print("โณ Ainda nรฃo pode votar.")
๐ŸŽ‰
Vocรช acabou de fazer o computador decidir. Pode parecer pouco, mas esse รฉ o coraรงรฃo de qualquer software do mundo โ€” do app do banco ao TikTok. ร‰ sรณ if/else em cima de if/else.
๐Ÿ›ค๏ธ
O comando elif โ€” mรบltiplos caminhos
"else if" โ€” quando vocรช tem mais de duas opรงรตes
O cardรกpio do restaurante ๐Ÿฝ๏ธ

O garรงom pergunta: "O que vai querer?" e vocรช tem vรกrias opรงรตes: pizza, lasanha, salada, hambรบrguerโ€ฆ Nรฃo dรก pra resolver com if/else โ€” sรณ dรก conta de duas escolhas. Aรญ entra o elif: "else if" โ€” se nรฃo for o anterior, serรก que รฉ esse?

๐Ÿšฆ O semรกforo (analogia favorita)

Trรชs cores, trรชs comportamentos. Decisรฃo clรกssica de elif:

cor == "vermelho" โ†’ pare
cor == "amarelo" โ†’ atenรงรฃo
cor == "verde" โ†’ siga
semaforo.py Python
1
2
3
4
5
6
7
8
cor = input("Cor do sinal: ")

if cor == "verde":
    print("๐ŸŸข Pode seguir!")
elif cor == "amarelo":
    print("๐ŸŸก Atenรงรฃo, vai fechar!")
elif cor == "vermelho":
    print("๐Ÿ”ด Pare!")
else:
    print("๐Ÿค” Cor desconhecida...")
๐Ÿšถ
Bonequinho num cruzamento: ele chega, olha o sinal, e segue UM caminho. O Python testa de cima pra baixo โ€” assim que uma condiรงรฃo der True, ele executa aquele bloco e ignora todos os outros.
โš ๏ธ
Sรณ pode existir um if e um else numa mesma estrutura, mas quantos elif vocรช quiser no meio.
๐Ÿ’ช
Desafio Criativo โ€” entrada_evento.py
Sua vez de usar elif na vida real
๐Ÿ’ช
Desafio Individual
Faรงa sozinho ยท entrada_evento.py
๐Ÿ’ก Dica para fazer sozinho

Imagina que vocรช รฉ o seguranรงa ๐Ÿฆบ de um evento e precisa decidir o que dizer a cada pessoa que chega, dependendo da idade. Crie um arquivo entrada_evento.py e:

1. Peรงa a idade do usuรกrio com input() e converta com int() (lembra do cap 02?).
2. Use if/elif/else com 3 faixas:

โ€ข idade < 16 โ†’ "Entrada nรฃo permitida ๐Ÿšซ"
โ€ข 16 a 17 โ†’ "Entrada apenas com responsรกvel ๐Ÿ‘จโ€๐Ÿ‘ง"
โ€ข 18 ou mais โ†’ "Entrada liberada! ๐ŸŽ‰"

Lembra do elif cor == "amarelo":? Aqui รฉ a mesma ideia, sรณ que com nรบmeros (use <, >=).

๐Ÿšจ
PARE! Tente sozinho primeiro. Abra o PyCharm e tente. Se der erro, leia a mensagem e tenta de novo โ€” quem espia antes de tentar perde a maior parte do aprendizado!
๐Ÿ‘€ Sรณ clique aqui DEPOIS de tentar โ€” Ver cรณdigo completo โ–ผ
entrada_evento.py Python
1
2
3
4
5
6
7
8
# pega a idade e converte pra inteiro
idade = int(input("Sua idade: "))

if idade < 16:
    print("๐Ÿšซ Entrada nรฃo permitida.")
elif idade < 18:
    print("๐Ÿ‘จโ€๐Ÿ‘ง Entrada apenas com responsรกvel.")
else:
    print("๐ŸŽ‰ Entrada liberada!")
Run ยท entrada_evento.py
Sua idade:
โœจ
Reparou na ordem? Como o Python testa de cima pra baixo, quando o elif idade < 18 roda, ele jรก sabe que a idade nรฃo รฉ menor que 16 (senรฃo teria caรญdo no if). Por isso esse elif cobre exatamente a faixa 16-17.
โš–๏ธ
Operadores de comparaรงรฃo
Os sรญmbolos que perguntam coisas

Toda condiรงรฃo que vocรช coloca dentro de um if usa um operador de comparaรงรฃo. Sรฃo 6 โ€” e vocรช jรก viu alguns. Bora oficializar:

==
igual a
3 == 3 โ†’ True   3 == 4 โ†’ False
!=
diferente de
3 != 4 โ†’ True   3 != 3 โ†’ False
>
maior que
5 > 3 โ†’ True   3 > 5 โ†’ False
<
menor que
3 < 5 โ†’ True   5 < 3 โ†’ False
>=
maior ou igual a
3 >= 3 โ†’ True   2 >= 3 โ†’ False
<=
menor ou igual a
3 <= 3 โ†’ True   4 <= 3 โ†’ False
๐Ÿคฏ
Atenรงรฃo mรกxima: = (uma igualdade) รฉ atribuiรงรฃo (eu coloco um valor numa variรกvel). == (duas) รฉ comparaรงรฃo (eu pergunto se sรฃo iguais). Esse erro รฉ tรฃo comum que o BugZilla vai aparecer em breve sรณ por causa dele ๐Ÿ›.
๐Ÿ”—
Operadores lรณgicos: and, or, not
Combinando condiรงรตes

E se a condiรงรฃo for composta? Ex.: "se for sexta E der pra sair cedo, bora pra praia ๐Ÿ–๏ธ". A gente combina condiรงรตes com 3 palavrinhas:

and
e โ€” os dois precisam ser verdadeiros
idade >= 18 and tem_ingresso
or
ou โ€” basta um ser verdadeiro
dia == "sab" or dia == "dom"
not
negaรงรฃo โ€” inverte verdadeiro/falso
not chovendo
acesso_clube.py Python
1
2
3
4
5
6
idade        = 20
tem_convite  = True

if idade >= 18 and tem_convite:
    print("Bem-vindo(a) ao clube! ๐ŸŽ‰")
else:
    print("Acesso negado ๐Ÿšซ")
๐Ÿ’ก
Dica de ouro: imagine o and como dois cadeados โ€” os dois precisam abrir. O or รฉ uma porta com duas chaves โ€” qualquer uma serve. O not รฉ o avesso (vira do lado contrรกrio).
๐Ÿšš
Bora Codar! โ€” entrega_gratis.py
Combinando condiรงรตes no mundo real
๐ŸŽฏ
Desafio guiado โ€” junto com o professor
entrega_gratis.py ยท regra: pedido > R$100 ganha frete grรกtis

Cenรกrio: vocรช tรก montando o checkout de uma loja. Se o valor do pedido for maior que R$100, o frete รฉ grรกtis. Senรฃo, frete custa R$15.

entrega_gratis.py Python
1
2
3
4
5
6
7
valor_pedido = float(input("Valor do pedido: R$ "))

if valor_pedido > 100:
    print("๐Ÿšš Frete GRรTIS! Total: R$", valor_pedido)
else:
    frete = 15
    print(f"Frete: R$ {frete}. Total: R$ {valor_pedido + frete:.2f}")
Run ยท entrega_gratis.py
Valor do pedido: R$
๐Ÿ’ก
Notou o float()? Aqui usamos pra aceitar valores com casas decimais (R$ 79,90 etc). Jรก o int() sรณ pega inteiros.
๐Ÿ”
Cenรกrio โ€” Restaurante Inteligente
Tudo o que vocรช aprendeu, junto

๐Ÿ” Bem-vindo ร  programa AI Burgers!

Aqui o programa conhece o cliente e dรก um mimo dependendo do dia da semana:

๐Ÿ“…
Segunda-feira โ†’ 10% de desconto pra animar a galera ๐Ÿค‘
๐Ÿฐ
Sexta-feira โ†’ sobremesa grรกtis pra comeรงar bem o fds
๐Ÿฝ๏ธ
Outros dias โ†’ pedido normal, mas atendido com carinho ๐Ÿ˜‰
๐ŸŒณ A รกrvore de decisรฃo do restaurante

Animaรงรฃo rolando: o programa decide o que oferecer:

Entrada
dia = "segunda"
Pergunta 1
dia == "segunda"?
sim
Saรญda
๐Ÿค‘ 10% de desconto!
Segunda
๐Ÿค‘ 10% off
Sexta
๐Ÿฐ Sobremesa grรกtis
Outros
๐Ÿฝ๏ธ Pedido normal
3.0
Bora Codar! (3.0) โ€” Sistema de Promoรงรตes
A gente codifica o restaurante juntos ยท promocoes.py
๐ŸŽฏ
Desafio guiado pelo professor
promocoes.py

Passo a passo:

๐Ÿ“ฅ
1. Pega o dia da semana com input().
๐ŸŒณ
2. Usa if/elif/else pra decidir a promoรงรฃo.
๐ŸŽ‰
3. Mostra a mensagem certinha pro cliente.
promocoes.py Python
1
2
3
4
5
6
7
8
dia = input("Que dia รฉ hoje? ").lower()

if dia == "segunda":
    print("๐Ÿค‘ Hoje tem 10% de desconto!")
elif dia == "sexta":
    print("๐Ÿฐ Sobremesa grรกtis no seu pedido!")
else:
    print("๐Ÿฝ๏ธ Bom pedido! Sem promoรงรฃo hoje.")
Run ยท promocoes.py
Que dia รฉ hoje?
โœจ
Reparou no .lower()? Ele transforma o que o usuรกrio digitou em minรบsculo. Assim, "Sexta", "SEXTA" ou "sexta" todos funcionam igual โ€” truque importante quando vocรช compara strings!
๐Ÿ›
BugZilla apareceu de novo!
Os erros clรกssicos do if/else
๐Ÿ›
"Mas eu jurava que tava certo!"
Os tropeรงos mais comuns com condicionais

Tem 2 erros que todo mundo comete na primeira vez com if/else. Bora desmistificar agora pra vocรช nรฃo cair neles ๐Ÿ˜‰.

๐Ÿž Erro 1 โ€” confundir = com ==

Esse รฉ o clรกssico dos clรกssicos. = atribui, == compara.

โŒ
Errado:
if idade = 18:
    print("OK")
SyntaxError โ€” Python reclama na hora.
โœ…
Certo:
if idade == 18:
    print("OK")
"รฉ igual a 18?" โ€” perfeito.
๐Ÿง 
Truque mnemรดnico: "= รฉ caixinha, == รฉ pergunta". Se vocรช quer guardar, รฉ =. Se vocรช quer perguntar, รฉ ==.

๐Ÿž Erro 2 โ€” esquecer os dois pontos :

O : no fim do if / elif / else รฉ obrigatรณrio โ€” รฉ como o Python sabe onde comeรงa o bloco.

โŒ
Errado:
if idade >= 18
    print("OK")
SyntaxError: expected ':'
โœ…
Certo:
if idade >= 18:
    print("OK")
Os dois pontinhos no fim. Sempre.
๐Ÿ“–
Hรกbito de ouro: quando der erro de sintaxe num if, a primeira coisa que vocรช confere รฉ se tem o : e se a prรณxima linha estรก indentada (4 espaรงos).
๐Ÿ 
Desafio para Casa โ€” descontos.py
Faixas de desconto por valor da compra
๐Ÿ 
Desafio para Casa
Faรงa em casa ยท descontos.py
๐Ÿ’ก Dica para fazer sozinho

Crie descontos.py. O programa pergunta o valor da compra e aplica desconto por faixa:

โ€ข atรฉ R$ 50 โ†’ sem desconto
โ€ข R$ 51 a R$ 200 โ†’ 5% de desconto
โ€ข R$ 201 a R$ 500 โ†’ 10% de desconto
โ€ข acima de R$ 500 โ†’ 15% de desconto

Passos: 1) leia com float(input(...)); 2) use if/elif/else pra escolher o desconto; 3) calcule o valor final e mostre uma f-string bonita com 2 casas decimais (f"{total:.2f}").

Lembra do entrada_evento.py? A estrutura do elif com faixas de nรบmero รฉ igualzinha โ€” sรณ muda a regra do negรณcio.

๐Ÿšจ
PARE! Tente sozinho primeiro. Esse aqui รฉ pra fazer em casa com calma, no seu ritmo. Errar รฉ parte do processo โ€” quem espia antes de tentar perde a maior parte do aprendizado!
๐Ÿ‘€ Sรณ clique aqui DEPOIS de tentar โ€” Ver cรณdigo completo โ–ผ
descontos.py Python
1
2
3
4
5
6
7
8
9
10
11
12
13
# pega o valor da compra (com casas decimais)
valor = float(input("Valor da compra: R$ "))

if valor <= 50:
    desconto = 0
elif valor <= 200:
    desconto = 0.05
elif valor <= 500:
    desconto = 0.10
else:
    desconto = 0.15

total = valor * (1 - desconto)
print(f"Desconto aplicado: {desconto*100:.0f}%")
print(f"Total a pagar: R$ {total:.2f}")
Run ยท descontos.py
Valor da compra: R$

๐ŸŽฏ
Olha como o elif fica natural: a gente vai descartando faixas de baixo pra cima. Quando o programa chega no elif valor <= 500, ele jรก sabe que o valor รฉ maior que 200 โ€” entรฃo cobre exatamente a faixa 201-500. Essa รฉ a beleza do encadeamento.
๐Ÿงฉ
Mini Sistema โ€” Consolidaรงรฃo
Tudo o que vocรช aprendeu, num sรณ programa
๐Ÿš€
Desafio Final do Capรญtulo
Faรงa sozinho ยท mini_sistema.py
๐Ÿ’ก Dica para fazer sozinho

Junta tudo num mini_sistema.py de cadastro de cliente VIP:

1. Pergunte nome, idade e se รฉ assinante (responde "sim"/"nรฃo").
2. Use and pra descobrir se a pessoa รฉ maior de 18 E assinante โ†’ "Cliente VIP! ๐ŸŒŸ"
3. Senรฃo, mostre uma mensagem amigรกvel usando o nome.

๐Ÿšจ
PARE! Tente sozinho primeiro. Esse exercรญcio amarra os 3 conceitos: input, if/else e o operador and. Vocรช consegue!
๐Ÿ‘€ Sรณ clique aqui DEPOIS de tentar โ€” Ver cรณdigo completo โ–ผ
mini_sistema.py Python
1
2
3
4
5
6
7
8
nome       = input("Seu nome: ")
idade      = int(input("Sua idade: "))
assinante  = input("ร‰ assinante? (sim/nรฃo): ").lower()

if idade >= 18 and assinante == "sim":
    print(f"๐ŸŒŸ {nome}, vocรช รฉ Cliente VIP!")
else:
    print(f"Olรก {nome}! Bora virar VIP? ๐Ÿ˜‰")
๐Ÿ†
Vocรช fez um sistema com 3 entradas e regra de negรณcio. Isso รฉ literalmente o que rola num back-end real โ€” sรณ com mais variรกveis e mais ifs.
โœ…
Resumo do Capรญtulo 03
O que vocรช acabou de dominar
๐ŸŽฏ if Executa um bloco SE a condiรงรฃo for verdadeira
๐Ÿ›ฃ๏ธ else O "senรฃo" โ€” entra quando o if falha
๐Ÿ›ค๏ธ elif "else if" โ€” mรบltiplos caminhos em sequรชncia
โš–๏ธ == != > < >= <= Operadores de comparaรงรฃo (perguntas)
๐Ÿ”— and / or / not Operadores lรณgicos para combinar condiรงรตes
๐Ÿ› = vs == Atribuiรงรฃo vs comparaรงรฃo โ€” o erro do BugZilla
๐Ÿ” Promoรงรตes Decisรตes com base em entrada do usuรกrio
๐ŸŒŸ Mini Sistema Combinou tudo num programa real

"Hoje seu programa comeรงou a pensar ๐Ÿง .
Bora ensinar ele a repetir?"

Prรณximo capรญtulo โ†’

Capรญtulo 04 โ€” Loops e Listas. Vocรช aprendeu a decidir. Agora vai aprender a repetir โ€” while, for e listas. Bora?

๐Ÿ” Ir para Capรญtulo 04 โ†’

ou โ† voltar ao hub