Estou criando um programa que não posso usar banco de dados e tenho que me virar com listas e dicionários. A ideia é fazer com que cada dicionário armazene os seguintes itens Tema: ‘tema’, Titulo : ‘Titulo’, Texto: ‘Era uma vez…’. Estou tentando fazer com que o usuário possa apagar ou trocar um desses itens, ou se ele preferir apagar todo o dicionário existente na lista.
Tenho outras dúvidas mais a principal é essa, vou encaminhar o código:
from time import sleep
def cadTemas():
try:
tema = str(input('Digite o tema: ')).capitalize()
temas.append(tema)
print('\033[31mTema {} armazenado!\033[m'.format(tema))
except (ValueError, TypeError):
print("Erro na leitura dos temas!")
return temas
def cadHistorias(tema, titulo, historias):
try:
historia.clear()
historia['tema'] = tema
historia['titulo'] = titulo
historia[titulo] = str(input('Entre com a historia: '))
historias.append(historia.copy())
print('Historia armazenada!')
print(historias)
except (ValueError, TypeError):
print("Erro na leitura das histórias!")
return historias
def mostrarHistorias(historias):
print('As historias cadastradas foram: \n')
for hist in historias:
print(f'{historia["titulo"]} ')
def apagarHistoria(titulo, historias): # A dúvida estar nessa parte
mostrarHistorias(historias)
titulo = str(input("Qual a historia que voce deseja apagar?"))
for hist in historias:
if (hist[titulo] == titulo):
historias = historias.pop(titulo, "Historia apagada")
print(historias)
def trocarHistoria(titulo, historias):
mostrarHistorias(historias)
def mostrarTemas(temas):
print('Temas cadastrados: ')
for t in temas:
print(tema)
#=-=-=-=-=-=-=-==-=-=-=-= Menu Principal -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
def leiaInt(msg): #Exercicio 113
while True:
try:
n = int(input(msg))
except (ValueError, TypeError):
print('\033[31mERRO: por favor, digite um número inteiro válido.\033[m')
continue
except (KeyboardInterrupt):
print('\n\033[31mUsuario preferiu nao digitar esse número.\033[m')
return 0
else:
return n
def linha(tam = 42):
return '-' * tam
def cabecalho(txt):
print(linha())
print(txt)
print(linha())
def menu(lista):
cabecalho('MENU PRINCIPAL')
for c, iten in enumerate(lista):
print(f'\033[33m{c+1}\033[m - \033[34m{iten}\033[m')
print(linha())
opc = leiaInt('\033[32mSua Opcao: \033[m')
return opc
####################################################################
titulos = list()
temas = list()
cadastro = dict()
historia = dict()
historias = list()
resposta = 1
listaMenu = ['Cadastrar tema', 'Cadastrar historia', 'Mostrar historia',
'Apagar historia', 'Mostrar temas', 'Sair do Sistema']
while (resposta != 6):
resposta = menu(listaMenu)
if (resposta == 1):
mostrarTemas(temas)
cadTemas()
elif (resposta == 2):
mostrarTemas(temas)
while True:
tema = str(input('Entre com o tema: '))
for t in temas:
if (t == tema ):
break
else:
print("Tema inexistente, por favor tente outra vez!")
titulo = str(input('Entre com o titulo da historia: '))
cadHistorias(t, titulo, historias)
elif (resposta == 3):
mostrarHistorias(historias)
elif (resposta == 4):
apagarHistoria(titulo, historias)
elif (resposta == 5):
mostrarTemas(temas)
elif resposta == (len(listaMenu)):
cabecalho('Saindo do sistema... Até logo!')
break
else:
print('\033[31mERRO! Digite uma opção válida!\033[m')
sleep(5)