Python - Ayu

 
Vista:
sin imagen de perfil

Ayu

Publicado por georwins (8 intervenciones) el 21/04/2023 22:05:51
Holaa a todos, soy yo otra vez, necesito ayuda para detectar que estoy haciendo mal en este codigo de POO, corregi lo que me mencionarion en la entrada anterior de darle formato


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
class Autor:
    def __init__(self,name,apellido):
        self.name=name
        self.apellido=apellido
    def MostrarAutor(self):
        print(f"El autor es: {self.name} {self.apellido}")
 
class Libro:
    def __init__(self,titulo,isbn):
        self.titulo=titulo
        self.isbn=isbn
    def AnadirAutor(self,autor):
        self.autor=autor
    def MostrarLibro(self):
        print("*****LIBRO*****")
        print("Titutlo: ", self.titulo)
        print("ISBN es: ", self.isbn)
        self.autor.MostrarAutor()
        print("***************")
        def ObtenerTitutlo(self):
            return self.Titulo
class Biblioteca:
    def __init__(self):
        self.ListadeLibros=[]
    def NumLibros(self):
        return len(self.ListadeLibros)
    def AnadirLibro(self,Libro):
        self.ListadeLibros=self.ListadeLibros+[Libro]
    def MostrarBiblioteca(self):
        print("#########################")
        for item in self.ListadeLibros:
            item.MostrarLibro()
        print("#########################")
    def BorrarLibro(self,titulo):
        encontrado=False
        posicionaborrar=-1
        for item in self.ListadeLibros:
            posicionaborrar+=1
            if item.ObtenerTitutlo()==titulo:
                encontrado=True
                break
        if encontrado:
            del self.ListaLibros[posicionaborrar]
            print("!Libro borrado correctamentr!")
        else:
            print("!Libro no encontrado!")
    def MostrarMenu():
            print("Menu\n1.Anadir Libro a la Biblioteca\n2.Mostrar Biblioteca\n3.Borrar Libro\n?4.Numero de Libros?\n5.Salir")
 
    def AnadirLibroabiblioteca(biblioteca):
        titulo=input("Introduzca el titulo del libro: ")
        isbn=input("Introduzca el ISBN del libro: ")
        autornombre=input("Introduzca el nombre del autor: ")
        autorapellidos=input("Introduzca el apellido del autor: ")
        autor=Autor(autornombre,autorapellidos)
        libro=Libro(titulo,isbn)
        libro.AnadirLibro(libro)
        return biblioteca
    def MostrarBiblioteca(biblioteca):
        biblioteca.MostrarBiblioteca()
    def BorrarLibro(biblioteca):
        titulo=input("Introduzca el titulo del libro a borra: ")
        biblioteca.BorrarLibro()
    def NumeroLibros(biblioteca):
        print("El numero de libros en la biblioteca es: ", biblioteca.NumeroLibros())
 
    fin=False
    biblioteca=Biblioteca()
 
    while not(fin):
        MostrarMenu()
        opci=int(input("Seleccione opcion: "))
        if(opci==1):
            biblioteca=AnadirLibroabiblioteca(biblioteca)
        elif (opci==2):
            MostrarBiblioteca()
        elif (opci==3):
            BorrarLibro()
        elif (opci==4):
            NumeroLibros(biblioteca)
        elif (opci==5):
            fin=True
    print("Adio Amigos")
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

Ayu

Publicado por Costero (92 intervenciones) el 22/04/2023 00:15:53
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
109
110
111
112
class Autor:
    def __init__(self, name, apellido):
        self.name = name
        self.apellido = apellido
 
    def mostrar_autor(self):
        print(f"El autor es: {self.name} {self.apellido}")
 
 
class Libro:
    def __init__(self, titulo, isbn):
        self.titulo = titulo
        self.isbn = isbn
 
    def anadir_autor(self, autor):
        self.autor = autor
 
    def mostrar_libro(self):
        print("*****LIBRO*****")
        print("Titutlo: ", self.titulo)
        print("ISBN es: ", self.isbn)
 
        self.autor.mostrar_autor()
 
        print("***************")
 
        def obtener_titutlo(self):
            return self.Titulo
 
    def __repr__(self) -> str:
        return self.titulo
 
 
class Biblioteca:
 
    def __init__(self):
        self.list_libros = []
 
    def num_libros(self):
        return len(self.list_libros)
 
    def anadir_libro(self, libro):
        self.list_libros.append(libro)
 
    def mostrar_biblioteca(self):
        print("#########################")
 
        for item in self.list_libros:
            item.mostrar_libro()
 
        print("#########################")
 
    def borrar_libro(self, titulo):
        borrado = False
        for libro in self.list_libros:
            if titulo == libro.titulo:
                self.list_libros.remove(libro)
                borrado = True
                break
 
        if borrado:
            print("!Libro borrado correctamente!")
        else:
            print("!Libro no encontrado!")
 
    @staticmethod
    def mostrar_menu():
        print("Menu\n1.Anadir Libro a la Biblioteca\n2.Mostrar Biblioteca\n3.Borrar Libro\n?4.Numero de Libros?\n5.Salir")
 
    def anadir_libro_a_biblioteca(self):
 
        titulo = input("Introduzca el titulo del libro: ")
        isbn = input("Introduzca el ISBN del libro: ")
        autornombre = input("Introduzca el nombre del autor: ")
        autorapellidos = input("Introduzca el apellido del autor: ")
 
        autor = Autor(autornombre, autorapellidos)
 
        libro = Libro(titulo, isbn)
        libro.anadir_autor(autor)
 
        self.anadir_libro(libro)
 
 
biblioteca = Biblioteca()
 
while True:
 
    Biblioteca.mostrar_menu()
    biblioteca.mostrar_biblioteca()
 
    opci = int(input("Seleccione opcion: "))
 
    if (opci == 1):
        biblioteca.anadir_libro_a_biblioteca()
 
    elif (opci == 2):
        biblioteca.mostrar_biblioteca()
 
    elif (opci == 3):
 
        titulo = input("Introduzca el titulo del libro a borra: ")
        biblioteca.borrar_libro(titulo)
 
    elif (opci == 4):
        print(
            f"El numero de libros en la biblioteca es: {biblioteca.num_libros}")
 
    elif (opci == 5):
        break
 
print("Adio Amigos")
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: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayu

Publicado por tincopasan (1082 intervenciones) el 22/04/2023 01:04:00
Hay tantos errores que hay que reescribir demasiado.
1)sigue estando mal la sangría
2)hay métodos que no tienen el mismo nombre cuando los llamas , lo mismo que variables
3)otros métodos no existen desde donde los estás queriendo invocar
4)faltan argumentos en algunas declaraciones
5)tampoco decís donde crees que tenes un problema o error que te d. pero van a ser muchos.
6)la verdad tampoco entiendo la lógica de programación, pero ese es otro tema.
7)se más específico en cada error o parte que no te funcione cuando preguntes
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: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayu

Publicado por tincopasan (1082 intervenciones) el 22/04/2023 02:51:51
Siguiendo un poco la forma en que lo estás haciendo te muestro una de las posibles formas:
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
#-*- coding: utf  -8 -*-
class Autor:
 
    def __init__(self, name, apellido):
        self.name = name
        self.apellido = apellido
 
    def __str__(self):
        return f"El autor es: {self.name} {self.apellido}"
 
class Libro:
 
    def __init__(self, titulo, isbn):
        self.titulo = titulo
        self.isbn = isbn
 
    def __str__(self):
        return f"""
*****LIBRO*****
Titutlo:\t  {self.titulo}
ISBN: \t{self.isbn}
        """
 
class Biblioteca:
 
    def __init__(self):
        self.list_libros = []
 
    def num_libros(self):
        return len(self.list_libros)
 
    def anadir_libro(self):
        titulo = input("Introduzca el titulo del libro: ").capitalize()
        isbn = input("Introduzca el ISBN del libro: ")
        autornombre = input("Introduzca el nombre del autor: ").capitalize()
        autorapellidos = input("Introduzca el apellido del autor: ").capitalize()
        self.autor = Autor(autornombre, autorapellidos)
        self.libro = Libro(titulo, isbn)
        self.list_libros.append([self.libro,self.autor])
 
    def mostrar_biblioteca(self):
        print("#" * 30)
        for item in self.list_libros:
            print(item[0])
            print(item[1])
        print("#" * 30)
 
    def borrar_libro(self, titulo):
        borrado=False
 
        for libro in self.list_libros:
            if titulo == libro[0].titulo:
                self.list_libros.remove(libro)
                borrado=True
        if borrado:
            print("!Libro borrado correctamente!")
        else:
            print("!Libro no encontrado!")
 
 
def mostrar_menu():
    print("Menú\n\n1. Añadir libro a la Biblioteca\n2. Mostrar Biblioteca\n3. Borrar Libro\n4. Cantidad de Libros\n5. Salir\n")
 
biblioteca = Biblioteca()
while True:
    mostrar_menu()
    opci = input("Seleccione opción: ")
    if opci == '1':
        biblioteca.anadir_libro()
    elif opci == '2':
        biblioteca.mostrar_biblioteca()
    elif opci == '3':
        titulo = input("Introduzca el titulo del libro a borrar: ").capitalize()
        biblioteca.borrar_libro(titulo)
    elif opci == '4':
        print(f"El número de libros en la biblioteca es: {biblioteca.num_libros()}\n")
    elif opci == '5':
        break
    else:
        print("Opción no válida \n")
 
print("Adio Amigos")
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