Informática, perguntado por rabbiby, 4 meses atrás

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

Respondido por lucasweberhmsj
3

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

Perguntas interessantes