Python - diccionarios nombres

 
Vista:
Imágen de perfil de angel

diccionarios nombres

Publicado por angel (29 intervenciones) el 10/11/2016 05:11:00
Un programa que vaya solicitando al usuario que ingrese nombres.
1. Si el nombre se encuentra en la agenda (implementada con un diccionario),
debe mostrar el teléfono y, permitir modificarlo o que quede igual.

2. Si el nombre no se encuentra, debe permitir ingresar el teléfono
correspondiente.

como puedo hacer eso ayuda porque mando return y no se agrega a la agenda, aki les adjunto una parte del pseudocodigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def e2():
    diccionario={}
    nombre=input("inserte nombre: ")
    numero=diccionario
    if nombre in diccionario:
            print(diccionario[nombre])
            val=input("Desea modificarlo? y/n")
            if val=="y":
                numero=("inserte numero")
                diccionario=numero
            if val=="n":
                diccionario=numero
                print("")
    else:
            numero=input("inserte numero")
            diccionario=numero
            print("Agregado a la agenda")
            return e2()
e2()
input()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

diccionarios nombres

Publicado por kip (257 intervenciones) el 11/11/2016 15:11:59
Hola, para lograr mantener los datos que almacenas dentro de tu funcion puedes usar un argumento en esta con valor por defecto y luego verificar si ese valor tiene algun dato dentro, en este caso el valor seriaan los datos del dicciionario, algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def e2(dicc = {}):
    diccionario = {}
    if (len(dicc)):
        diccionario = dicc
    nombre = input("Inserte nombre: ")
    if nombre in diccionario:
            print("Numero actual:",diccionario[nombre])
            val = input("Desea modificarlo? y/n: ")
            if val == "y":
                numero = input( "Inserte nuevo numero: ")
                diccionario[nombre] = numero
                print("Numero actualizado!")
                return e2(diccionario)
            if val == "n":
                return e2(diccionario)
    else:
            numero = input("Inserte numero: ")
            diccionario.update({nombre : numero})
            print("Agregado a la agenda!")
            return e2(diccionario)
e2()

Ademas de eso he modificado algo tu codigo para continuar el input de nombres a la agenda.

Nos avisas si te sirvio.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de angel

diccionarios nombres

Publicado por angel (29 intervenciones) el 12/11/2016 02:59:44
lo hice de esta manera y finalmente kedo, saludos

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
def e2():
    global c
    os.system('cls')
    global agenda
    agenda={}
    s=False
    while (not s):
        try:
            print(Fore.LIGHTCYAN_EX+"Presione * para salir")
            x=str(input("Ingrese nombre: "))
            if (x in agenda):
                print(Fore.LIGHTYELLOW_EX+"presione 0 para dejar igual")
                print(Fore.LIGHTGREEN_EX+"numero de telefono actual: ",agenda[x])
                y=int(input("ingrese numero nuevo: "))
                if(y==0):
                    continue
                else:
                    agenda[x]=y
                    continue
            if (x=="*"):
                print(Fore.LIGHTBLUE_EX+"Esta es la agenda.")
                print(agenda)
                time.sleep(4)
                os.system('cls')
                return menu()
            y=int(input("Ingrese numero: "))
            agenda[x]=y
        except:
            print(Fore.LIGHTRED_EX+"Error.")
            c=c+1
            time.sleep(1)
            return e2()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar