1
resposta

def cadastrar_ novo_restaurante # tecla 1 indo pra funcão opção invalida.

import os

#https://fsymbols.com/letters/

restaurantes = [{'nome':'Praça', 'categoria':'Japonesa','ativo':False},
                {'nome':'Pizza Suprema','categoria':'Pizza','ativo': True},
                {'nome':'cantina','categoria':'Italiano', 'ativo':False}]


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

def finalizar_app():
 os.system('cls')
 print('Finalizando o app\n')

def volta_ao_menu_principal():
    input('\nDigite uma tecla para voltar ao menu principal')
    main()

def opcao_invalida():
    print('Opção Inválida!\n')
    volta_ao_menu_principal()
    

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

def cadastrar_novo_restaurante():#erro ao cadastrar o restaurante
    exibir_subtitulo('Cadastrar novo restaurante')
    nome_do_restaurante = input('Digite o nome do restaurante que deseja ' \
    'cadastrar: ')
    categoria = input(f'Digite o nome da categoria do restaurante {nome_do_restaurante}: ')
    dados_do_restaurante = {'nome':nome_do_restaurante, 'categoria':categoria, 'ativo':False}
    restaurantes.append(dados_do_restaurante)
    print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!\n')
    volta_ao_menu_principal()

def listar_restaurantes():
    os.system('cls')
    print('Listar os restaurantes\n')
     
    for restaurante in restaurantes:
        nome_restaurante = restaurante['nome']
        categoria = restaurante['categoria']
        ativo = restaurante['ativo']
        print(f'- {nome_restaurante} | {categoria} | {ativo}')
    volta_ao_menu_principal()

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

def escolher_opcao():

     try:
        opcao_escolhida = int(input('Escolha uma opção: '))
        # opcao_escolhida = int(opcao_escolhida)

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

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

if __name__ == '__main__':
   main()
1 resposta

Boa noite, Rafael! Como vai?

O erro está ocorrendo por causa da definição da função exibir_subtitulo().

Repare que ao chamar a função cadastrar_novo_restaurante(), você está passando uma string na função exibir_subtitulo(). Assim:

def cadastrar_novo_restaurante():
    exibir_subtitulo('Cadastrar novo restaurante')

Sendo que você não a definiu para receber parâmetros. Logo, é necessário esse ajuste:

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

Dessa forma, a opção 1 irá ser executada corretamente!

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

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