2
respostas

[Projeto] Erro na exibição final

def listar_restaurante():
    exibir_subtitulo('Lista de restaurantes:')

    print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')

    # percorre a lista de restaurantes e lista todos cadastrados
    for restaurante in restaurantes:
        nome_do_restaurante = restaurante['nome']
        categoria_do_restaurante = restaurante['categoria']
        status_do_restaurante = 'Ativo' if restaurante['ativo'] else 'Inativo'
        print(f'- {nome_do_restaurante.ljust(20)} | Categoria: {categoria_do_restaurante.ljust(20)} | Status: {status_do_restaurante}')
    
    voltar_ao_menu_principal()

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

O cabeçalho de Status não está sendo exibido da maneira correta. Poderiam me ajudar a entender isso por favor?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Consegui entender o que foi que estava causando o erro na exibição.

Na exibição da categoria eu tinha deixado "Categoria: " e ljust(20) não estava sendo suficiente. Removi o texto a mais e funcionou certinho.

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

Olá Jonas.
É isso ai matou a charada.
O problema estava nesta linha:

print(f'{'Nome do restaurante'.ljust(22)} | {'Categoria'.ljust(20)} | Status')

Atenção:
Aqui você está usando f-strings, mas também está usando aspas simples dentro da f-string, o que confunde o Python.
Ele interpreta a expressão f'{'Nome do restaurante'.ljust(22)}' de forma incorreta, porque os colchetes {} estão tentando envolver uma string literal, o que não é válido.
Se quiser testar outra alternativa:
Use variáveis para deixar mais limpo:

def listar_restaurante():
    exibir_subtitulo('Lista de restaurantes:')

    nome_coluna = 'Nome do restaurante'
    categoria_coluna = 'Categoria'
    status_coluna = 'Status'

    print(f'{nome_coluna.ljust(22)} | {categoria_coluna.ljust(20)} | {status_coluna}')

    for restaurante in restaurantes:
        nome_do_restaurante = restaurante['nome']
        categoria_do_restaurante = restaurante['categoria']
        status_do_restaurante = 'Ativo' if restaurante['ativo'] else 'Inativo'
        print(f'- {nome_do_restaurante.ljust(20)} | Categoria: {categoria_do_restaurante.ljust(20)} | Status: {status_do_restaurante}')
    
    voltar_ao_menu_principal()

Comente ai qualquer duvida.
Bons estudos.