🍔
Desafio Prático #2

Sistema de Pedidos

Lanchonete AI Burgers

Consolide loops, condicionais, listas e funções criando um sistema de pedidos interativo — com cálculo de preço total!

1
Entendendo o Problema
O que mudou em relação ao Desafio 1?

Agora você é dono de uma lanchonete! O cliente olha o cardápio, escolhe os itens e no final recebe a conta com o total.

📋 Cardápio 4 itens com preços
🔄 Pedir mais Loop enquanto quiser
📦 Lista de pedidos Guarda cada item
💰 Calcular total Novo!
🧾 Nota fiscal Resumo + total

🔄 Comparando com o Desafio 1

🎬 Desafio 1 — Votação

  • Menu com 3 filmes
  • Guardava votos
  • Contava com .count()
  • Comparava quantidades

🍔 Desafio 2 — Lanchonete

  • Menu com 4 itens + preços
  • Guarda pedidos
  • Função que retorna preço
  • Soma total com for
🎯
As novidades principais são: funções com return (que devolvem um valor) e o loop for para percorrer a lista somando preços!

🗺️ Mapa do Programa

Início
🍔 Criar lista de pedidos vazia
loop começa ↩️
Cardápio
📋 Mostrar menu com preços
Entrada
⌨️ Pedir escolha do cliente
Decisão
Digitou 0?
Não → item válido? Sim ↓
Ação
📦 Adicionar item na lista
volta pro menu 🔄
Final
🧾 Percorrer lista, somar preços, mostrar total
2
O Cardápio
Função para exibir o menu — igual ao Desafio 1!

Primeiro, vamos criar nosso cardápio visualmente:

Agora em Python — uma função que imprime isso:

lanchonete_ai.py — Passo 1
1
2
3
4
5
6
7
def mostrar_menu():
    print("🍔 Bem-vindo à Lanchonete AI Burgers!")
    print("1 - X-Burger ........ R$15")
    print("2 - X-Salada ........ R$18")
    print("3 - Batata Frita .... R$10")
    print("4 - Refrigerante .... R$7")
    print("0 - Finalizar Pedido")
Isso aqui você já sabe! Mesma estrutura do Desafio 1. A diferença é que agora temos 4 opções em vez de 3, e cada uma tem um preço.
3
Função com Return
Conceito Novo! — Funções que devolvem valores
🆕 O que é return?

No Desafio 1, nossa função apenas imprimia (print). Agora precisamos de uma função que devolve um valor — o preço do item. Isso se faz com return!

Função com print vs return

print = o garçom grita o preço no salão. Todo mundo ouve, mas ninguém "guarda".

return = o garçom entrega o preço na sua mão. Você pode guardar, somar, fazer o que quiser com ele!

lanchonete_ai.py — Passo 2
1
2
3
4
5
6
7
8
9
10
11
12
def preco_item(opcao):   # Recebe a opção
    if opcao == 1:
        return 15          # Devolve 15
    elif opcao == 2:
        return 18          # Devolve 18
    elif opcao == 3:
        return 10          # Devolve 10
    elif opcao == 4:
        return 7           # Devolve 7
    else:
        return 0           # Item inválido
🔑
Repare: preco_item(opcao) recebe um parâmetro — o número que o cliente digitou. A função "olha" qual número é e devolve (return) o preço correspondente. É como uma tabela de consulta!
Exemplo de uso
# Como usar a função:
preco = preco_item(1)   # preco agora vale 15
preco = preco_item(3)   # preco agora vale 10
preco = preco_item(99)  # preco agora vale 0 (inválido)
4
O Loop de Pedidos
while True — o cliente pede até dizer "chega"
🔄 Mesma lógica do Desafio 1!

O loop é praticamente idêntico ao da votação. A diferença? Agora temos 4 opções válidas e os nomes são de comida!

lanchonete_ai.py — Passo 3
1
2
3
4
5
6
7
8
9
10
11
12
13
pedidos = []  # Lista vazia — a "comanda"

while True:
    mostrar_menu()
    opcao = int(input("Digite o número do item: "))

    if opcao == 0:
        break  # 🛑 Fecha a comanda!
    elif opcao == 1 or opcao == 2 or opcao == 3 or opcao == 4:
        pedidos.append(opcao)  # 📦 Anota na comanda
        print("✅ Item adicionado!")
    else:
        print("⚠️ Opção inválida!")
Analogia: O garçom anotando

O garçom (loop) fica ao lado da mesa o tempo todo. A cada item que o cliente pede, ele anota na comanda (append). Quando o cliente diz "é só isso" (0), ele vai calcular a conta (break).

🛒 Monte seu Pedido!

Clique nos itens para simular o .append() e veja a lista crescendo:

pedidos =
[ ]

🍔 AI Burgers

Comanda do Cliente

Nenhum item ainda...
TOTAL R$ 0
5
Calculando o Total
Conceito Novo! — O loop for e o acumulador
🆕 O loop for — percorrendo a lista

No Desafio 1 usamos .count() para contar votos. Agora precisamos percorrer cada item da lista, descobrir o preço e somar tudo. Para isso usamos o for!

for = Conferindo a comanda

Imagine que você olha a comanda item por item: "X-Burger... R$15. Batata... R$10. Refri... R$7." A cada item, você soma na calculadora. No final, tem o total!

lanchonete_ai.py — Passo 4
1
2
3
4
5
6
7
# Calculando o total
total = 0  # Começa zerado

for p in pedidos:          # Para cada pedido na lista...
    total += preco_item(p)   # ...soma o preço!

print(f"🧾 Total de {len(pedidos)} item(s) - Valor total: R${total}")
💡
total += preco_item(p) é o mesmo que total = total + preco_item(p). O += é um atalho para "soma e guarda". Chamamos isso de acumulador!

🔍 Passo a passo do for

Se pedidos = [1, 3, 4, 1], veja como o for percorre:

0 total = 0 início
1 p = 1 → preco_item(1) = 15 total = 0 + 15 = 15
2 p = 3 → preco_item(3) = 10 total = 15 + 10 = 25
3 p = 4 → preco_item(4) = 7 total = 25 + 7 = 32
4 p = 1 → preco_item(1) = 15 total = 32 + 15 = 47
🧾 Total final: R$47
📝
len(pedidos) retorna o tamanho da lista — quantos itens foram pedidos. É uma função built-in do Python!
6
Código Completo
Tudo junto — pronto para rodar!
lanchonete_ai.py — versão final
lanchonete_ai.py — Versão Completa ✅
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 🍔 Sistema de Pedidos — Lanchonete AI Burgers
# Desafio 2 — Programa AI

def mostrar_menu():
    print("🍔 Bem-vindo à Lanchonete AI Burgers!")
    print("1 - X-Burger ........ R$15")
    print("2 - X-Salada ........ R$18")
    print("3 - Batata Frita .... R$10")
    print("4 - Refrigerante .... R$7")
    print("0 - Finalizar Pedido")

def preco_item(opcao):
    if opcao == 1:
        return 15
    elif opcao == 2:
        return 18
    elif opcao == 3:
        return 10
    elif opcao == 4:
        return 7
    else:
        return 0

pedidos = []

while True:
    mostrar_menu()
    opcao = int(input("Digite o número do item: "))

    if opcao == 0:
        break
    elif opcao == 1 or opcao == 2 or opcao == 3 or opcao == 4:
        pedidos.append(opcao)
        print("✅ Item adicionado!")
    else:
        print("⚠️ Opção inválida!")

total = 0
for p in pedidos:
    total += preco_item(p)

print(f"🧾 Total de {len(pedidos)} item(s) - Valor total: R${total}")
📦 Mapa de conceitos usados
FUNÇÃO mostrar_menu() — imprime o cardápio
RETURN preco_item(opcao)devolve o preço do item
LISTA pedidos = [] + .append() — armazena os pedidos
WHILE while True + break — repete até finalizar
FOR for p in pedidos — percorre lista somando preços
IF/ELIF Valida opção + decide preço de cada item
Veja Funcionando!
Simulação animada do programa

Veja o programa rodando do início ao fim:

python lanchonete_ai.py
Clique em "Rodar Simulação" para ver o programa em ação...
🍔

Pedido Entregue!

Você aprendeu return, o loop for e o padrão acumulador — ferramentas que vai usar em praticamente todo programa!

🚀 Desafios extras

✦ Mostre o nome de cada item no resumo final (não só o número)
✦ Aplique 10% de desconto se o total passar de R$50
✦ Peça o nome do cliente e inclua no recibo
✦ Limite o pedido a no máximo 10 itens