Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Problema no código - DICIONÁRIO

Pessoal!

Eu escrevi e revi o código acompanhando as instruções do vídeo e não deu o resultado esperado.

Como era pra ficar (print do vídeo da aula):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como ficou (print do meu exercício): Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Prints dos códigos referentes ao meu exercício:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E mais esse:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

É de se notar que os termos nome, categoria e ativo, estão em vermelho, enquanto que no vídeo com os instrutores, fica em azul. O que houve? Vai precisar do código inteiro transcrito ou os prints já são suficientes?

Atenciosamente

2 respostas
solução!

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

Olá Rafael! Tranquilo?

Cara, era isso mesmo! Agradeço a ajuda.

Com relação às cores eu meio que já suspeitava que era em relação ao tipo/grupo pertencente, tanto que eu até pensei que vermelho fosse um erro, mas as videoaulas estavam em vermelho e não dava erro. E váriso prints na internet mostram isso também. Só quis destacar onde estava o problema.

Agradeço e problema solucionado.