Bom dia, Nicholas! Tudo bem com você?
O comportamento apresentado, onde não é impresso a categoria e se o restaurante está ativo ou não, está acontecendo devido a ter sido fornecido duas strings ('categoria'
e 'ativo'
) para a função print()
, o correto é fornecer duas variáveis (categoria
e ativo
).
Para corrigir esse erro, basta retirar as aspas simples das palavras categoria
e ativo
, deixando o código como apresentado abaixo:
print(f' - {nome_restaurante} | {categoria} | {ativo}')
Código completo com a correção aplicada
def listar_restaurantes():
os.system('cls')
print('Lista de restaurantes\n')
for restaurante in restaurantes:
nome_restaurante = restaurante['nome']
categoria = restaurante['categoria']
ativo = restaurante['ativo']
print(f' - {nome_restaurante} | {categoria} | {ativo}')
retorna_ao_menu_principa()
Após aplicar a correção, salve o arquivo e execute-o novamente.
Para saber mais: A diferença de cores indica o tipo de objeto, no seu caso a cor vermelha indica que é uma string, já a cor azul indica que é uma variável, mas essas cores não são padronizadas e vão depender muito do editor de código que você estiver utilizando no momento. Essas cores servem para auxiliar no momento em que estamos codificando, facilitando a identificação do conteúdo do código.
Sobre se é necessário compartilhar o código completo no fórum, recomendo que sempre que for postar uma dúvida compartilhe as prints e o código completo, caso queira conhecer algumas dicas a mais sobre como tirar o melhor proveito do fórum, recomendo a leitura deste artigo da Alura.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado