Menu eletrônico em Python
Boa tarde!
Estou criando um menu eletrônico em Python e estou com algumas dificuldades.
Preciso utilizar classes e funções para listas de pratos de um restaurante, contendo os atributos nome, descrição, imagem e valor. A quantidade de pratos é infinita, então pra isso tive a ideia de colocar a opção de adicionar pratos, consigo adiciona-los e esses adicionados aparecem no final, mas os já adicionados não e além disso quero que antes de já perguntar que prato adicionar quero que liste os existentes.
class MenuRest:
def __init__(self, nome, descricao, imagem, valor):
self.nome = nome
self.descricao = descricao
self.imagem = imagem
self.valor = valor
prato1 = MenuRest(''Estrogonofe'', ''Carne cozida ao molho branco'', ''Carne/Arroz'', ''R$35,00'')
prato2 = MenuRest(''Peixe'', ''Salmão grelhado'', ''Salmão fresco grelhado'', ''R$65,00'')
prato3 = MenuRest(''Costela'', ''Costela ao molho barbecue'', ''Costela no molho'', ''R$45,00'')
pratos = []
while True:
nome_prato = str(input(''Qual prato você quer? ''))
if nome_prato == ''fim'':
break
prato_existe = next((prato for prato in pratos if prato.nome == nome_prato), None)
if prato_existe:
print(''prato existe: '', prato.nome)
continue
descricao = str(input(''Digite uma descrição: ''))
imagem = str(input(''Digite uma imagem: ''))
valor = str(input(''Digite o valor: ''))
prato = MenuRest(nome_prato, descricao, imagem, valor)
pratos.append(prato)
for prato in pratos:
print(prato.nome, descricao, imagem, valor)
Alguém pode me ajudar?
Grato
Estou criando um menu eletrônico em Python e estou com algumas dificuldades.
Preciso utilizar classes e funções para listas de pratos de um restaurante, contendo os atributos nome, descrição, imagem e valor. A quantidade de pratos é infinita, então pra isso tive a ideia de colocar a opção de adicionar pratos, consigo adiciona-los e esses adicionados aparecem no final, mas os já adicionados não e além disso quero que antes de já perguntar que prato adicionar quero que liste os existentes.
class MenuRest:
def __init__(self, nome, descricao, imagem, valor):
self.nome = nome
self.descricao = descricao
self.imagem = imagem
self.valor = valor
prato1 = MenuRest(''Estrogonofe'', ''Carne cozida ao molho branco'', ''Carne/Arroz'', ''R$35,00'')
prato2 = MenuRest(''Peixe'', ''Salmão grelhado'', ''Salmão fresco grelhado'', ''R$65,00'')
prato3 = MenuRest(''Costela'', ''Costela ao molho barbecue'', ''Costela no molho'', ''R$45,00'')
pratos = []
while True:
nome_prato = str(input(''Qual prato você quer? ''))
if nome_prato == ''fim'':
break
prato_existe = next((prato for prato in pratos if prato.nome == nome_prato), None)
if prato_existe:
print(''prato existe: '', prato.nome)
continue
descricao = str(input(''Digite uma descrição: ''))
imagem = str(input(''Digite uma imagem: ''))
valor = str(input(''Digite o valor: ''))
prato = MenuRest(nome_prato, descricao, imagem, valor)
pratos.append(prato)
for prato in pratos:
print(prato.nome, descricao, imagem, valor)
Alguém pode me ajudar?
Grato
Lucas
Curtidas 0
Melhor post
Arthur Heinrich
18/04/2023
Você criou inicialmente 3 pratos, armazenados nas variáveis prato1, prato2 e prato3. Porém, esqueceu-se de adicioná-los à classe pratos.
pratos.append(prato1)
pratos.append(prato2)
pratos.append(prato3)
Como estas variáveis são temporárias e não são utilizadas para outra finalidade, você pode suprimi-las.
Ao invés de fazer:
prato = MenuRest(nome_prato, descricao, imagem, valor)
pratos.append(prato)
Poderia fazer:
pratos.append(MenuRest(nome_prato, descricao, imagem, valor))
No início ficaria:
pratos.append(MenuRest(''Estrogonofe'', ''Carne cozida ao molho branco'', ''Carne/Arroz'', ''R$35,00''))
pratos.append(MenuRest(''Peixe'', ''Salmão grelhado'', ''Salmão fresco grelhado'', ''R$65,00''))
pratos.append(MenuRest(''Costela'', ''Costela ao molho barbecue'', ''Costela no molho'', ''R$45,00'')))
pratos.append(prato1)
pratos.append(prato2)
pratos.append(prato3)
Como estas variáveis são temporárias e não são utilizadas para outra finalidade, você pode suprimi-las.
Ao invés de fazer:
prato = MenuRest(nome_prato, descricao, imagem, valor)
pratos.append(prato)
Poderia fazer:
pratos.append(MenuRest(nome_prato, descricao, imagem, valor))
No início ficaria:
pratos.append(MenuRest(''Estrogonofe'', ''Carne cozida ao molho branco'', ''Carne/Arroz'', ''R$35,00''))
pratos.append(MenuRest(''Peixe'', ''Salmão grelhado'', ''Salmão fresco grelhado'', ''R$65,00''))
pratos.append(MenuRest(''Costela'', ''Costela ao molho barbecue'', ''Costela no molho'', ''R$45,00'')))
GOSTEI 2
Mais Respostas
Leticia Lima
17/04/2023
Oi,
segue um exemplo de como eu faria.
segue um exemplo de como eu faria.
class MenuRest: def __init__(self, nome, descricao, imagem, valor): self.nome = nome self.descricao = descricao self.imagem = imagem self.valor = valor prato1 = MenuRest('Estrogonofe', 'Carne cozida ao molho branco', 'Carne/Arroz', 'R$35,00') prato2 = MenuRest('Peixe', 'Salmão grelhado', 'Salmão fresco grelhado', 'R$65,00') prato3 = MenuRest('Costela', 'Costela ao molho barbecue', 'Costela no molho', 'R$45,00') pratos = [prato1, prato2, prato3] while True: # Exibir a lista de pratos existentes print("Pratos existentes:") for prato in pratos: print(f"{prato.nome} - {prato.descricao} - {prato.imagem} - {prato.valor}") nome_prato = input('Qual prato você quer (ou digite "fim" para sair)? ') if nome_prato == 'fim': break # Verificar se o prato já existe na lista prato_existe = next((prato for prato in pratos if prato.nome == nome_prato), None) if prato_existe: print('Prato já existe: ', prato_existe.nome) continue # Se não existir, adicionar um novo prato descricao = input('Digite uma descrição: ') imagem = input('Digite uma imagem: ') valor = input('Digite o valor: ') novo_prato = MenuRest(nome_prato, descricao, imagem, valor) pratos.append(novo_prato)
GOSTEI 0