Python - Ayuda para hacer un gestor de bibliotecas python

 
Vista:

Ayuda para hacer un gestor de bibliotecas python

Publicado por NESTOR (1 intervención) el 01/09/2017 15:16:15
Hola muy buenas, tengo un ejercicio de repaso que me dio un amigo para mostrarme utilidades de python y no se me ocurre como hacerlo.
Al iniciar el programa, este debe permitir elegir una acción:
Mostrar Lista
Agregar libro
Borrar Libro
Editar (modificar) Libro
Cada libro debe tener:
Autor
Titulo
Editorial
Espero que me puedan ayudar, muchas gracias.
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

Ayuda para hacer un gestor de bibliotecas python

Publicado por Victoria (2 intervenciones) el 08/09/2017 00:28:37
¡Hola! Tengo el mismo problema que tú, si has encontrado alguna forma de hacerlo comunícamelo, ¡¡Gracias!!
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
sin imagen de perfil
Val: 291
Bronce
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Ayuda para hacer un gestor de bibliotecas python

Publicado por dario (60 intervenciones) el 08/09/2017 04:25:06
Podrias hacerlo con base de datos (SQLITE) o con arreglos.
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
sin imagen de perfil
Val: 102
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Ayuda para hacer un gestor de bibliotecas python

Publicado por Andrés (39 intervenciones) el 08/09/2017 08:45:22
libro.py:

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
class Libro:
    def __init__(self, autor, titulo, editorial):
        self.autor = autor
        self.titulo = titulo
        self.editorial = editorial
 
    @property
    def autor(self):
        return self._autor
 
    @autor.setter
    def autor(self, autor):
        self._autor = autor
 
    @property
    def titulo(self):
        return self._titulo
 
    @titulo.setter
    def titulo(self, titulo):
        self._titulo = titulo
 
    @property
    def editorial(self):
        return self._editorial
 
    @editorial.setter
    def editorial(self, editorial):
        self._editorial = editorial

libroManager.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class LibroManager:
    def __init__(self):
        self.libros = []
 
    @property
    def libros(self):
        return self._libros
 
    @libros.setter
    def libros(self, libros):
        self._libros = libros
 
    def agregar(self, libro):
        self.libros.append(libro)
 
    def eliminar(self, indice):
        if indice in range(0, len(self.libros)):
            del self.libros[indice]
 
    def editar(self, indice, libro):
        if indice in range(0, len(self.libros)):
            self.libros[indice].autor = libro.autor
            self.libros[indice].titulo = libro.titulo
            self.libros[indice].editorial = libro.editorial

main.py

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
102
103
104
105
106
107
108
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
 
from libro import Libro
from libroManager import LibroManager
 
 
class App:
    def __init__(self):
        self.manager = LibroManager()
 
    @property
    def manager(self):
        return self._manager
 
    @manager.setter
    def manager(self, manager):
        self._manager = manager
 
    def menu(self):
 
        while True:
 
            print("")
            print("Elija una opción")
            print("\n1.- Agregar")
            print("2.- Editar")
            print("3.- Listar")
            print("4.- Eliminar")
            print("5.- Salir")
            print("")
 
            try:
                opcion = int(input("?: "))
            except ValueError as ve:
                print("Opción no válida")
                continue
 
            if opcion in range(1, 5):
                self.procesar_opcion(opcion)
            elif opcion == 5:
                break
            else:
                print("Opción no válida")
 
    def procesar_opcion(self, opcion):
 
        if opcion == 1:
            self.agregar()
        elif opcion == 2:
            self.editar()
        elif opcion == 4:
            self.eliminar()
        elif opcion == 3:
            self.listar()
 
    def agregar(self):
 
        titulo = input("\nTitulo: ")
        autor = input("Autor: ")
        editorial = input("Editorial: ")
 
        l = Libro(autor, titulo, editorial)
        self.manager.agregar(l)
 
    def eliminar(self):
 
        self.listar()
 
        try:
 
            indice = int(input("\nIndice del libro: "))
            self.manager.eliminar(indice)
 
        except ValueError as ve:
            print("Indice no válido")
 
    def listar(self):
 
        print("")
 
        for i, l in enumerate(self.manager.libros):
            print("Id: {0}, Autor: {1}, Titulo: {2}, Editorial: {3}".format(i, l.autor, l.titulo, l.editorial))
 
    def editar(self):
 
        self.listar()
 
        try:
 
            indice = int(input("\nIndice del libro: "))
 
            titulo = input("\nNuevo titulo: ")
            autor = input("Nuevo autor: ")
            editorial = input("Nueva editorial: ")
 
            l = Libro(autor, titulo, editorial)
 
            self.manager.editar(indice, l)
            self.listar()
 
        except ValueError as ve:
            print("Indice no válido")
 
 
if __name__ == "__main__":
    app = App()
    app.menu()
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

Ayuda para hacer un gestor de bibliotecas python

Publicado por Victoria (2 intervenciones) el 08/09/2017 18:41:37
Muchas gracias, ¿cúal sería la mejor forma de hacerlo?
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