Estoy trabajando en un menú donde se tiene que cargar un diccionario como función, pero como se trabaja con otras funciones al momento de llamarlas se pierde la información y no la guarda. Es un proyecto final, me encantaría que me explicaran porque no funciona mas que resolver el problema.
Los problemas que tengo:
- El contador me lo da como error.
- Debería cargarse el diccionario una sola vez y no lo hace
El archivo que se usa:
1,casa,2,house,3,maison
2,table,3,table,1,mesa
3,fille,2,daughter,1,hija
2,she,1,ella,3,elle
El código:
from collections import defaultdict
import csv
import time
def cargar ():
key_dic = {"1": "español", "2": "inglés", "3":"frances"}
dic = defaultdict(list)
with open("/content/diccionario.dat") as file:
for line in file.readlines():
for palabra in line.strip().split(","):
if palabra.isnumeric():
key = key_dic[palabra]
else:
dic[key].append(palabra)
print(dic)
contador=0
def no_carga():
print("No se ha activado el diccionario")
def es_in ():
cargar()
print ("-----------------------------------------")
busqueda = input("Introduzca la palabra que desea buscar \n")
if busqueda in diccionario["español"]:
print ("-----------------------------------------")
indice=diccionario["español"].index(busqueda)
print ("Su traduccion al idioma Ingles es: ",diccionario["ingles"][indice])
print ("-----------------------------------------")
print ("")
if busqueda not in diccionario["español"]:
print("NO SE ENCUENTRA, INTENTA AGAIN")
def in_fr ():
diccionario ={"español":["casa","mesa","hija","ella"],"ingles":["house","table","daughter","she"],"frances":["maison","table","fille","elle"]}
print ("-----------------------------------------")
busqueda = input("Introduzca la palabra que desea buscar \n")
if busqueda in diccionario["ingles"]:
indice=diccionario["ingles"].index(busqueda)
print ("-----------------------------------------")
print ("Su traduccion al idioma Frances es: ",diccionario["frances"][indice])
print ("-----------------------------------------")
print ("")
if busqueda not in diccionario["ingles"]:
print("NO SE ENCUENTRA, INTENTA AGAIN")
def menu ():
print ("************************************")
print("Bienvenido al Diccionario de Ninos")
print ("************************************")
print ("1. Cargar Diccionario \n",
"2. Español – Inglés \n",
"3. Inglés – Francés \n",
"4. Buscar Palabras \n",
"5. Salir")
eleccion = int(input("Presionar opcion de ejecucion: "))
if eleccion == 1:
contador=1
cargar()
elif eleccion == 2:
if contador==1:
es_in ()
else:
no_carga()
elif eleccion == 3:
in_fr ()
elif eleccion == 4:
buscar ()
elif eleccion == 5:
exit()
elif eleccion >= 6:
print("Opcion no valida")
elif eleccion < 1:
print("Opcion no valida")
while True:
try:
menu()
time.sleep(2)
except ValueError:
print("Opcion no valida")