Enunciado: Você e sua equipe de programadores foram contratados para desenvolver um app de vendas para uma pizzaria. Você ficou com a parte de desenvolver a interface do cliente para retirada do produto.
A Pizzaria possui seguinte tabela de sabores de pizzas listados com sua descrição, códigos e valores:
Código Descrição Pizza Média - M Pizza Grande – G (30% mais cara)
21 Napolitana R$ 20,00 R$ 26,00
22 Margherita R$ 20,00 R$ 26,00
23 Calabresa R$ 25,00 R$ 32,50
24 Toscana R$ 30,00 R$ 39,00
25 Portuguesa R$ 30,00 R$ 39,00
Elabore um programa em Python que:
1. Entre com o tamanho da pizza
2. Entre com o código do produto desejado;
3. Pergunte se o cliente quer pedir mais alguma coisa (se sim repetir a partir do item 1. Caso contrário ir para próximo passo);
4. Encerre a conta do cliente com o valor total;
5. Deve-se utilizar estruturas if, elif e else (EXIGÊNCIA 1 de 3);
6. Se a pessoa digitar um TAMANHO de pizza e/ou NÚMERO diferente dos da tabela printar na tela: ‘opção inválida’ e voltar para o menu (EXIGÊNCIA 2 de 3);
7. Deve-se utilizar while, break, continue (EXIGÊNCIA 3 de 3);
o (DICA: utilizar o continue dentro else que verifica a opção inválida)
o (DICA: utilizar o break dentro if que verifica a opção sair)
Soluções para a tarefa
Resposta:
cardapio = { # imprimindo cardárpio
21: ["Napolitana", 20, 26],
22: ["Margherita", 20, 26],
23: ["Calabresa", 25, 32.50],
24: ["Toscana", 30, 39],
25: ["Portuguesa", 30, 39]
}
def ParaimprimirCardapio(cardapio: dict): # Função para imprimir com boa formatação o cardápio
cabecalho = f"| {'Código':^10s} | {'Descrição':^20s} | {'Pizza Média':^15s} | {'Pizza Grande':^15s} |"
print(f"{'Cardápio':-^{len(cabecalho)}s}")
print(cabecalho)
print("-"*len(cabecalho))
for codigo, produtos in cardapio.items():
print(f"| {codigo:^10} | {produtos[0]:^20} | {f'R$ {produtos[1]:.2f}':^15} | {f'R$ {produtos[2]:.2f}':^15} |")
print("-"*len(cabecalho))
def ParaselecionarTamanho(): # Função para selecionar o tamanho da pizza que o usuario deseja
while True:
try:
tamanho = input("Qual tamanho de pizza que deseja (M/G): ").strip().upper()
if tamanho not in ["M", "G"]:
print("\nTamanho inválido.\n")
continue
else:
break
except ValueError:
print("\nDigite um tamanho válido.\n")
return tamanho
def ParaselecionarSabor(): # Função para selecionar o sabor da pizza
while True:
try:
codigo = int(input("Entre com o código do sabor desejado: "))
if codigo not in cardapio.keys():
print("\nCódigo informado não existe.\n")
continue
else:
print(f"Você pediu uma pizza {cardapio[codigo][0]}")
break
except ValueError:
print("\nDigite um código válido.\n")
return codigo
print(f"Bem-vindo(a) a Pizzaria do Lucas\n")
total = 0
#Exibe Cardapio
ParaimprimirCardapio (cardapio.copy ())
while True:
# Seleção de tamanho e sabor, executando funções
tamanho = ParaselecionarTamanho()
sabor = ParaselecionarSabor()
# Soma o valor baseado no tamanho
if tamanho == "M":
total += cardapio[sabor][1]
elif tamanho == "G":
total += cardapio[sabor][2]
else:
total += 0
# Pergunta se deseja continuar
print("\nDeseja pedir mais alguma coisa?")
print("1 - Sim")
print("0 - Não")
# Valida a opção informada
while True:
try:
continuar = int(input("Escolha: "))
if continuar not in [0, 1]: # para obrigar o usuario apenas as opçoes 1 ou 0
print("\nOpção inválida.")
continue
else:
break
except ValueError: # caso o usuario nao siga a orientaçã
print("\nOpção inválida.")
# Se a escolha for Zero - Imprime o total e encerra a execuç
if continuar == 0:
print(f"\nO total a ser pago é: R$ {total:.2f}")
break
Explicação:
Cumprindo todos os quesitos solicitados