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

Vs está dizendo que o "Texto" não está definido

Meu vs está apresentando o seguinte erro:Insira aqui a descrição dessa imagem para ajudar na acessibilidade

import os

restaurantes = ['Rei do Cone', 'Tô no X']

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

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

def finalizar_app():
    exibir_subtitulo('Encerrando o app')

def voltar_ao_menu_principal():
     input('\nDigite uma tecla para voltar ao menu princial.')
     main()

def exibir_subtitulo():
    os.system('cls')    
    print(texto)
    print()

def opcao_invalida():
    print('Opçào invalida !\n')
    voltar_ao_menu_principal()

def cadastar_novo_restaurante():
    exibir_subtitulo('Cadastro de Novos resturantes!')
    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar:')
    restaurantes.append(nome_do_restaurante)
    print(f'Restaurante "{nome_do_restaurante}" foi cadastrado com sucesso!\n')
    voltar_ao_menu_principal()
    

def listar_restaurantes():
    exibir_subtitulo('Lista dos Restaurantes')


    for restaurante in restaurantes:
        print(f'{restaurante}')

    voltar_ao_menu_principal()


def escolher_opcao():
    try:
        opcao_escolhida =int(input('Escolha uma opção:'))
        # opcao_escolhida = int(opcao_escolhida) `essa é uma das formas tbm de converter uma string para numero inteiro.`
        if opcao_escolhida == 1:
            cadastar_novo_restaurante()
            print('Cadastrar resturantes')
        elif opcao_escolhida == 2 :
            listar_restaurantes()
            print('Listar Restaurantes')
        elif opcao_escolhida == 3:
            print('Ativar Restaurante')
        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()
2 respostas
solução!

Depois de procurar por mais um tempo no meu código, consegui descobrir oque estava faltando. Eu tinha esqucido de declara "Texto" como parametro dentro da função:

def exibir_subtitulo(texto):
    os.system('cls')    
    print(texto)
    print()

Agora o código está funcionando.

Oi, Matheus, tudo bem?

É isso mesmo: a função exibir_subtitulo() precisa receber o parâmetro texto para funcionar corretamente. Do jeito que você ajustou.

Agora sempre que for usar essa função, é necessário passar uma string como argumento. Por exemplo:


exibir_subtitulo('Lista dos Restaurantes')

Assim, o erro de "texto não definido" desaparece, pois o nome texto já está sendo passado e utilizado corretamente na função.

Fico à disposição. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!