AYUDA ERROR: UnboundLocalError: local variable 'x' referenced before assignment
Publicado por Emanuel (11 intervenciones) el 28/08/2020 16:45:05
Buenas necesito ayuda con el siguiente codigo:
me da el error UnboundLocalError: local variable 'clientes' referenced before assignment
alguien que pueda ayudarme? intente agregar al princicio de la opcion 6 global clientes pero me da error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import os
def get_clientes(file):
try:
f = open(file, 'r')
except FileNotFoundError:
return ('el fichero tiene error')
else:
directory = f.readlines()
f.close()
directory = dict([tuple(line.replace('\n', ' ').split(',')) for line in directory])
return directory
def set_clientes(file,clientes):
try:
#os.remove(file)
f = open(file, 'w')
except FileNotFoundError:
return ('¡El fichero ' + file + ' no existe!\n')
else:
for cli in clientes:
f.write(str(cli) + ',' + clientes[cli] + '\n')
f.close()
def menu():
print ('MENÚ MANTENIMIENTO DE TELEFONOS')
print('0 - SALIR')
print('1 - LEER TELEFONOS DE LA BASE DE DATOS')
print('2 - CONSULTAR UN TELEFONO')
print('3 - AGREGAR UN TELEFONO')
print('4 - MODIFICAR UN TELEFONO')
print('5 - ELIMINAR UN TELEFONO')
print('6 - GUARDAR BASE DE DATOS')
option=input("INGRESE UNA OPCION"+'\n')
return option
def main():
while True:
option=menu()
if option=='0':
break
elif option=='1':
clientes = get_clientes('telefonos.txt')
print(clientes)
elif option=='2':
# leer los clientes del archivo
clientes = get_clientes('telefonos.txt')
client=(input("ingrese el nombre del cliente a leer: "))
if client in clientes:
print('el cliente: ' + client + " existe en la base de datos")
print('-------------------------------------------------------------------------------------')
print('Cliente: ' + str(client) + ' Numero de telefono: ' + str(clientes[client]))#print (diccionario['cursos'][0])#se puede pedir posicion
print('_____________________________________________________________________________________')
else:
#print("¡el: "+client+" No existe!")
print('¡El cliente ' + str(client) + ' no existe!\n')
elif option=='3':
clientes=get_clientes('telefonos.txt')
client=input('ingrese el nombre del cliente: ')
client1=input('ingrese el numero de telefono del cliente: ')
clientes[client]=client1
print('----------------------------------------------------------------------------------------')
print('el cliente: '+client+ ' con numero de telefono: '+client1+' ha sido agregado con exito')
print(clientes)
print('----------------------------------------------------------------------------------------')
elif option=='4':
clientes=get_clientes('telefonos.txt')
client=input('ingrese el nombre del cliente que desea cambiar: ')
if client in clientes:
client1=input('ingrese el nuevo numero')
clientes[client]=client1
print('------------------------------------------------------------------------------------')
print('el numero del cliente: '+client+ 'a sido modificado con exito')
print(clientes)
print('------------------------------------------------------------------------------------')
else:
print('¡El cliente ' + str(client) + ' no existe!\n')
print('ingrese un nombre de cliente valido')
elif option=='5':
clientes = get_clientes('telefonos.txt')
client = input('ingrese el nombre del cliente que desea eliminar: ')
if client in clientes:
clientes.pop(client)
print('------------------------------------------------------------------------------------')
print(' cliente: ' + client + ' a sido eliminado con exito')
print(clientes)
print('------------------------------------------------------------------------------------')
else:
print('¡El cliente ' + str(client) + ' no existe!\n')
print('Ingrese un nombre de cliente valido')
elif option=='6':
set_clientes('telefonos.txt',clientes)
print(clientes)
elif option=='0':
break;
main()
me da el error UnboundLocalError: local variable 'clientes' referenced before assignment
alguien que pueda ayudarme? intente agregar al princicio de la opcion 6 global clientes pero me da error.
Valora esta pregunta


0