Python - Duda Ejercicio

 
Vista:

Duda Ejercicio

Publicado por Julian (3 intervenciones) el 30/11/2021 08:47:10
Buenas!

Estoy haciendo un curso de Python que me está quedando un poco grande, he empezado a aprender hace poco. Nos han planteado un ejercicio del cuál comprendo la primer parte, pero no sé continuar, a ver si me podéis ayudar.

En el ejercicio te piden hacer dos clases, una primera que se llame Libro, que servirá para describir cada libro de nuestra biblioteca (con los atributos título y autor); y otra que se llame Biblioteca, que debe contener una lista de libros y debe poder crearse sin necesidad de argumentos. Una vez hecho esto, debería mostrarse una lista de los libros que contiene la biblioteca de la siguiente manera:

mi_biblioteca.show() y debería mostrar una lista de libros en la que aparecieran el título y el autor (entre paréntesis).

He conseguido hacer las dos clases, pero en la clase Biblioteca debo estar haciendo algo mal porque cuando intento crear el método add para añadir libros a esa lista (mi_biblioteca.add(mi_libro)) me da error continuamente.

Gracias por la ayuda y espero haberme explicado bien!!!
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 Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Duda Ejercicio

Publicado por Francisco Javier (313 intervenciones) el 30/11/2021 22:09:26
ok, podemos ayudarte, envianos que es lo que tienes en tu codigo y sobre éste empezamos a trabajar, por poco que sea estarñia genial que lo publicaras, un saludo
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

Duda Ejercicio

Publicado por Julian (3 intervenciones) el 01/12/2021 07:26:47
Muchas gracias! Publico lo poco que tengo desarrollado del ejercicio.

class Libro:
def __init__(self, titulo, autor):
self.titulo = titulo
self.autor = autor

mi_libro1 = Libro("Memorias de Idhun", "Laura Gallego Garcia")
mi_libro2 = Libro("El invierno del mundo", "Ken Follett")
mi_libro3 = Libro("Harry Potter y la Piedra Filosofal", "J.K Rowling")

class Biblioteca:


Una vez creada la primera clase y definidos sus atributos, lo siguiente sería crear una segunda clase (Biblioteca) sin necesidad de argumentos (que entiendo que sería __init__(self): ; y crear una lista donde agregar estos libros mediante el método add de la siguiente manera:
mi_biblioteca.add(mi_libro)

También deberá mostrarse una lista de libros de la siguiente manera:
mi_biblioteca.show()

La lista debería quedar así:

Título del libro 1 (Nombre del autor 1)
Título del libro 2 (Nombre del autor 2)
Título del libro 3 (Nombre del autor 3)

Espero que la información sea clara, gracias de nuevo!
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 Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Duda Ejercicio

Publicado por Francisco Javier (313 intervenciones) el 01/12/2021 16:57:52
Ok entiendo mas o menos que quieres hacer pero hay despejar un par de dudas cuando quieres crear la lista y añadirle los libros no puedes hacerlo con add() porque ésta función se utiliza para conjuntos y la función show() es del módulo pyplot de la biblioteca matplotlib. para añadir elementos a una lista se hace con append() y puedes luego imprimirlas con print() para mostrar la lista . Esto es lo que no entiendo muy bien si es que te lo piden así o no. Ya me dices
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

Duda Ejercicio

Publicado por Julián (3 intervenciones) el 01/12/2021 18:15:49
Buenas Javier,

Me ha echado un cable un amigo y efectivamente estaba creando de manera incorrecta el método add() y el método show(). Al final estoy aprendiendo desde hace poco y me faltan muchos conceptos base, pero bueno poco a poco.

Muchas gracias aun así por la ayuda!!
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

Duda Ejercicio

Publicado por tincopasan (1082 intervenciones) el 01/12/2021 23:02:46
creo que lo que esás buscando es algo así, dejo algunos comentarios
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
#-*- coding: utf  -8 -*-
class Libro:
    def __init__(self, titulo, autor):
        self.titulo = titulo
        self.autor = autor
 
    def  __str__(self):  #este método es para devolver la representación de cadena del objeto
        return f"Título: {self.titulo}  - (Autor: {self.autor}) "
 
 
 
mi_libro1 = Libro("Memorias de Idhun", "Laura Gallego Garcia")
mi_libro2 = Libro("El invierno del mundo", "Ken Follett")
mi_libro3 = Libro("Harry Potter y la Piedra Filosofal", "J.K Rowling")
 
class Biblioteca:
    def __init__(self):  #el planteo dice sin paramétros no sin el constructor
        self.listado=[]  #Hay que guardar los libros en una lista
 
    def add(self,libro):   #método agregar
        self.listado.append(libro)
 
    def show(self):      #método mostrar
        for x in self.listado:
            print(f" {x}")
 
#las declaraciones
 
mi_biblioteca=Biblioteca()
 
mi_biblioteca.add(mi_libro1)
mi_biblioteca.add(mi_libro2)
mi_biblioteca.add(mi_libro3)
 
mi_biblioteca.show()

Otra cosa el tag </>Código es para que mantenga el formato en la página
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