Olá Ricardo,
Eu testei sua função no meu código, e funcionou sem problemas:
Já que não é a função o problema, creio que possa estar na identação, formatação ou algo do tipo. Se conseguir me mandar o código completo, ai eu posso testar assim que possível. Vamos nos ajudando, qualquer coisa pode mandar!
Aliás, eu separei meu código em dois: app.py e funcoes.py, vou disponibilizá-los aqui.
app.py
import funcoes
restaurantes = [{'nome':'Praça', 'categoria':'Japonesa', 'ativo':False},
{'nome':'Pizza Suprema', 'categoria':'Pizza', 'ativo':True},
{'nome':'Cantina', 'categoria':'Italiano', 'ativo':False}]
if __name__ == '__main__':
funcoes.main()
funcoes.py
import os
import app
import time
def finalizar_app():
sub_titulo('Finalizando o app!')
time.sleep(3)
print('App finalizado!')
def exibir_nome_do_programa():
print('''
█▀ ▄▀█ █▄▄ █▀█ █▀█ █▀▀ ▀▄▀ █▀█ █▀█ █▀▀ █▀ █▀
▄█ █▀█ █▄█ █▄█ █▀▄ ██▄ █░█ █▀▀ █▀▄ ██▄ ▄█ ▄█
''')
def exibir_opcoes():
print('1. Cadastrar restaurante')
print('2. Listar restaurantes')
print('3. Alterar estado de restaurantes')
print('4. Sair\n')
def escolher_opcao():
try:
opcao_escolhida = int(input('\nEscolha uma opção: '))
if opcao_escolhida == 1:
cadastrar_novos_restaurantes()
elif opcao_escolhida == 2:
listar_restaurantes()
elif opcao_escolhida == 3:
ativar_restaurantes()
else:
finalizar_app()
except:
opcao_invalida()
#FUNÇÃO PARA CADASTRAR NOVOS RESTAURANTES
def cadastrar_novos_restaurantes():
'''Essa função é responsável por cadastrar um novo restaurante
- Nome do restaurante
- Categoria
Output:
- Adiciona um novo restaurante à lista de restaurantes
'''
sub_titulo('Cadastro de novos restaurantes')
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}: ')
app.restaurantes.append ({'nome':nome_do_restaurante, 'categoria':categoria, 'ativo':False})
print('\nAguarde um momento, estamos realizando o cadastro em nosso banco de dados!\n')
time.sleep(2.5)
print(f'\nO restaurante {nome_do_restaurante} foi cadastrado com sucesso!')
voltar_menu_principal()
def listar_restaurantes():
sub_titulo('Listando os restaurantes')
incrementador = 1
print(f' {'Nome do Restaurante'.ljust(20)} | {'Categoria'.ljust(20)} | Status')
print('_____________________________________|______________________________|_____________________________________')
print(' | | ')
for restaurante in app.restaurantes:
nome_do_restaurante = restaurante['nome']
categoria = restaurante['categoria']
ativo = 'Ativado' if restaurante['ativo'] else 'Desativado'
print(f' {incrementador} {nome_do_restaurante.ljust(20)} | {categoria.ljust(20)} | {ativo}')
incrementador += 1
voltar_menu_principal()
def ativar_restaurantes():
sub_titulo('Alterando estado do restaurante')
nome_restaurante = input('Digite o nome do restaurante que deseja alterar o estado: ')
restaurante_encontrado = False
for restaurante in app.restaurantes:
if nome_restaurante == restaurante['nome']:
restaurante_encontrado = True
restaurante['ativo'] = not restaurante['ativo']
mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'O restaurante {nome_restaurante} foi desativado com sucesso'
print(mensagem)
if not restaurante_encontrado:
print('Restaurante não encontrado')
voltar_menu_principal()
def voltar_menu_principal():
input('\nDigite uma tecla para voltar ao menu principal')
main()
def opcao_invalida():
print('Opção Inválida!\n')
voltar_menu_principal()
def sub_titulo(subtitulo):
os.system('cls')
linha = '*' * (len(subtitulo))
print(linha)
print(subtitulo)
print(linha, '\n')
def main():
os.system('cls')
exibir_nome_do_programa()
exibir_opcoes()
escolher_opcao()