1
resposta

[Dúvida] LISTAS: retorno não está vindo conforme desejado.

Quando coloco o código pra rodar e seleciono para inserir um novo restaurante, o terminal me responde conforme imagem abaixo:

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

Segue o código que fiz de acordo com o que foi feito em aula:

import os

restaurantes = []


def exibir_nome_do_programa():
    print('Sabor Express\n\n')

def exibir_opcoes():
    print('1. Cadastrar restaurante')
    print('2. Listar restaurantes')
    print('3. Ativar restaurante')
    print('4. Sair\n')

def finalizar_app():
    os.system('cls')
    print('Encerrando o programa')

def opcao_invalida():
    print('Opção inválida.\n')
    input('Aperte qualquer tecla para voltar ao MENU.')
    main()


def cadastrar_novo_restaurante():
    os.system('cls') 
    print('Cadastro de novos restaurantes.\n')

    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
    restaurantes.append(nome_do_restaurante) 
    
    print(f'\nO restaurante "{nome_do_restaurante}" foi cadastrado com sucesso!\n')
    input('Aperte qualquer tecla para voltar ao MENU.')
    main()


def escolher_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma opção: \n'))
        # print(f'Você escolheu a opção {opcao_escolhida}\n')

        if opcao_escolhida == 1:
            cadastrar_novo_restaurante()
        elif opcao_escolhida == 2:
            print('Listar restaurantes')
        elif opcao_escolhida == 3:
            print('Ativar restaurantes')
        elif opcao_escolhida == 4:
            finalizar_app()
        else:
            opcao_invalida()
    except:
        opcao_invalida()


def main():
    os.system('cls')
    exibir_nome_do_programa()
    exibir_opcoes()
    escolher_opcao()

if __name__ == '__main__':
    main()

Agradeço a atenção.

1 resposta

Olá, Kaue! Como vai?

O problema pode estar relacionado ao uso do os.system('cls') no Windows, que pode interferir na saída do terminal. No entanto, o código em si parece correto quanto à lógica de adicionar e exibir o nome do restaurante.

Aqui estão algumas sugestões para tentar resolver o problema:

  1. Remova o os.system('cls'): Tente comentar essa linha para ver se o problema persiste. Isso pode ajudar a identificar se o comando de limpar a tela está causando algum efeito colateral.

  2. Verifique o ambiente de execução: Certifique-se de que o terminal ou IDE que você está usando está funcionando corretamente e não está interferindo na saída.

  3. Teste o código em outro ambiente: Se possível, execute o código em outro terminal ou IDE para ver se o problema persiste.

  4. Adicione prints para depuração: Antes de adicionar o restaurante à lista, adicione um print(nome_do_restaurante) para verificar se o valor está correto.

Aqui está uma versão modificada do trecho que pode ajudar a depurar:

def cadastrar_novo_restaurante():
    # os.system('cls') 
    print('Cadastro de novos restaurantes.\n')

    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
    print(f'Debug: Nome do restaurante inserido: {nome_do_restaurante}')  # Linha de depuração
    restaurantes.append(nome_do_restaurante) 
    
    print(f'\nO restaurante "{nome_do_restaurante}" foi cadastrado com sucesso!\n')
    input('Aperte qualquer tecla para voltar ao MENU.')
    main()

Espero que essas dicas ajudem a resolver o problema!

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.