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

Lista bugando meu código

Oi! Tudo bem? Então estou codando um projeto a medida que vou assistindo as aulas e estou passando um perrengue. Quando eu crio uma lista vazia, eu consigo solicitar a opções de "Listar", porém quando eu coloco um ou mais empresa("Restaurante na aula") e vou selecionar o "Listar", aparece "Opção invalida". Alguém sabe resolver?

import os

empresas = []

def exibir_nome():
    print("""
         ██████╗░█████╗░██████╗░░█████╗░██████╗░
        ██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗
        ╚█████╗░███████║██████╦╝██║░░██║██████╔╝
        ░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗
        ██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║
        ╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝
    """)

def exibir_menu():
    print('1. Cadastrar empresas')
    print('2. Listar empresas')
    print('3. Altenar status da empresas')
    print('4. Sair')
    print()

def saindo():
    os.system('cls')
    print('Saindo do APP')

def voltar_menu():
    input('Digite qualquer tecla para voltar ao menu principal.')
    print()
    main()

def invalido():
    os.system('cls')
    print('Tecla inválida')
    voltar_menu()

def cadastro():
    print('Cadastrando empresas')
    nome_da_empresa = input('Qual o nome da empresa: \n')
    print(f'A empresa {nome_da_empresa} foi cadastrada com sucesso!')
    print()
    categoria = input(f'Agora, qual a categoria da empresa {nome_da_empresa}: \n')
    print('Categoria criada com sucesso!')
    dados = {'nome':nome_da_empresa, 'categoria':categoria, 'ativo':False}
    empresas.append(dados)
    print()
    voltar_menu()

def lista():
    print('Listando empresas')
    
    for empresa in empresas:
        nome_da_empresa = empresa['nome']
        categoria = empresa['categoria']
        ativo = empresa['ativo']
        print(f'{nome_da_empresa | categoria | ativo}')
    voltar_menu()

def acao():
    try:
        escolhido = int(input('O que deseja fazer hoje: \n'))
        os.system('cls')

        if escolhido == 1:
            cadastro()
        elif escolhido == 2:
            lista()
        elif escolhido == 3:
            print('Alternando status das empresas')
        elif escolhido == 4:
            saindo()
        else:
            invalido()
    except:
        invalido()

    print()

def main():
    os.system('cls')
    exibir_nome()
    exibir_menu()
    acao()

if __name__ == '__main__':
    main()
2 respostas
solução!

Bom dia Douglas. Altere esta linha:

print(f'{nome_da_empresa | categoria | ativo}')

Para esta forma:

print(f'{nome_da_empresa} | {categoria} | {ativo}')

Que o seu código vai rodar.

Meu amigo, muito obrigado!!! Fiquei o dia todo ontem, tentando descobrir onde errei. Sua resposta só me mostrou que tenho que estudar mais ;)