Consolide loops, condicionais, listas e funções criando um sistema de pedidos interativo — com cálculo de preço total!
Agora você é dono de uma lanchonete! O cliente olha o cardápio, escolhe os itens e no final recebe a conta com o total.
.count()Primeiro, vamos criar nosso cardápio visualmente:
Agora em Python — uma função que imprime isso:
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")
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!
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!
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
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!
# 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)
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!
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!")
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).
Clique nos itens para simular o .append() e veja a lista crescendo:
Comanda do Cliente
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!
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!
# 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 = total + preco_item(p). O += é um atalho para "soma e guarda". Chamamos isso de acumulador!
Se pedidos = [1, 3, 4, 1], veja como o for percorre:
# 🍔 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}")
mostrar_menu() — imprime o cardápio
preco_item(opcao) — devolve o preço do item
pedidos = [] + .append() — armazena os pedidos
while True + break — repete até finalizar
for p in pedidos — percorre lista somando preços
Veja o programa rodando do início ao fim:
Você aprendeu return, o loop for e o padrão acumulador — ferramentas que vai usar em praticamente todo programa!