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: 813
Bronce
Ha mantenido su posición 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: 179
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda para hacer un gestor de bibliotecas python

Publicado por Andrés (55 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