Python - Necesito ayuda para una agenda

 
Vista:
sin imagen de perfil
Val: 4
Ha disminuido su posición en 21 puestos en Python (en relación al último mes)
Gráfica de Python

Necesito ayuda para una agenda

Publicado por kenin (2 intervenciones) el 04/12/2020 23:55:26
No consigo hacer que el punto 4 del menu de mi agenda de contactos funcione. Tiene que ser la funcion de eliminar contacto. Tiene que preguntar algo sobre el contacto que queremos borrar, en este caso, cada contacto tiene asignado un codigo. Quiero que me pida el codigo del contacto a eliminar y que lo borre.


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
98
99
100
101
import csv
import re
import itertools
 
 
class Contacto:
    nuevoId=itertools.count()
    def __init__(self,nombre,apellido,movil):
        self.codigo=next(self.nuevoId)
        self.nombre=nombre
        self.apellido=apellido
        self.movil=movil
class Agenda:
    def __init__(self):
        self.contactos=[]
    def añadir(self,nombre,apellido,movil):
        contacto=Contacto(nombre,apellido,movil)
        self.contactos.append(contacto)
    def mostrarTodos(self):
        for contacto in self.contactos:
            self.imprimeContacto(contacto)
    def buscar(self,textoBuscar):
        encontrado=0
        for contacto in self.contactos:
            if (re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellido)):
                self.imprimeContacto(contacto)
                encontrado=encontrado+1
        if encontrado==0:
            self.noEncontrado()
    def borrar(self,codigo):
        for contacto in self.contactos:
            if contacto.codigo==codigo:
                print('-----------------------------------')
                print('¿Borar el contacto? (si/no) ')
                print('-----------------------------------')
                opcion=str(input(""))
                if opcion=='si':
                    print('Contacto borrado')
                    del self.contactos[codigo]
                elif opcion=='no':
                    break
    def grabar(self):
        with open('agenda.csv','w') as fichero:
            escribir=csv.writer(fichero)
            escribir.writerow(('codigo', 'nombre', 'apellido', 'movil'))
            for contacto in self.contactos:
                escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellido,contacto.movil))
    def imprimeContacto(self,contacto):
        print()
        print('-----------------------------------')
        print('Codigo: {}'.format(contacto.codigo))
        print('Nombre:{}'.format(contacto.nombre))
        print('Apellido:{}'.format(contacto.apellido))
        print('Movil:{}'.format(contacto.movil))
        print('-----------------------------------')
    def noEncontrado(self):
        print()
        print('-----------------------------------')
        print('Contacto no encontrado')
        print('-----------------------------------')
def ejecutar():
    global movil
    agenda=Agenda()
    try:
        with open('agenda.csv','r') as fichero:
            lector=csv.DictReader(fichero,delimiter=',')
            for fila in lector:
                agenda.añadir(fila['nombre'],fila['apellido'],fila['movil'])
    except:
        print('Error al abrir fichero o no existe fichero aun')
    while True:
        Menu=str(input("""
        1. Mostrar lista de contactos \n
        2. Buscar contacto \n
        3. Añadir contacto \n
        4. Eliminar contacto \n
        5. Salir \n
        Elija una opción escribiendo el número:
        """))
        if Menu=='1':
            agenda.mostrarTodos()
        elif Menu=='2':
            texto=str(input('Escribe el nombre o apellido del contacto: '))
            agenda.buscar(texto.capitalize())
        elif Menu=='3':
            nombre=str(input('Escribe el nombre: '))
            apellido=str(input('Escribe el apellido: '))
            movil=str(input('Escribe el movil: '))
            agenda.añadir(nombre,apellido,movil)
            agenda.grabar()
        elif Menu=='4':
 
        elif Menu=='5':
            print('Ha finalizado')
            agenda.grabar()
            break
        else:
            print('Debe marcar una opcion del Menu')
if __name__=='__main__':
    ejecutar()
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