Fórum Menu eletrônico em Python #619845
17/04/2023
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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'')))
Arthur Heinrich
Responder
Gostei + 2
Mais Posts
07/12/2023
Leticia Lima
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)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)