Python - Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

 
Vista:

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 17/03/2021 12:18:07
Buenos días,
Estoy aprendiendo por mi cuenta hace un par de meses Python y realizando ejercicios que voy encontrando en distintas webs y necesito ayuda.
Estoy realizando un ejercicio de clases y objetos.
La primera clase es 'Producto' con los siguientes atributos: código, nombre, precio y tipo. También he realizado una función en ella que indicas el producto y las unidades y te devuelve el importe total.
La segunda clase parte debe partir de dos atributos; una lista de productos y una lista de cantidades. Tengo que crear una función que me devuelva el importe total de un pedido. Sé que es algo muy sencillo, pero me he quedado bloqueado con esto y no consigo verlo. Los nervios de los últimos días tampoco me ayudan. ¿Podrías hecharme una mano y/o indicarme lugares en los que pueda realizar este tipo de consultas?
Les agradezco de antemano su ayuda e interés. Saludos
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por joel (901 intervenciones) el 17/03/2021 12:43:47
Hola Eric, la verdad es que sin mostrar el código no se muy bien como ayudarte... lo puedes publicar?
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 17/03/2021 12:48:37
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
class Producto:
    __codigo=""
    __nombre=""
    __precio=0
    __tipo=""
    def __init__(self,codigo,nombre,precio,tipo):
        self.__codigo=codigo
        self.__nombre=nombre
        self.__precio=precio
        self.__tipo=tipo
        print(("El producto {} con código {} ha sido creado.").format(self.nombre,self.codigo))
    def __del__(self):
        print("Has eliminado el producto")
    @property
    def codigo(self):
        return self.__codigo
    @codigo.setter
    def codigo(self,newValor):
        self.__codigo=newValor
    @property
    def nombre(self):
        return self.__nombre
    @nombre.setter
    def nombre(self,newValor):
        self.__nombre=newValor
    @property
    def precio(self):
        return self.__precio
    @precio.setter
    def precio(self,newValor):
        self.__precio=newValor
    @property
    def tipo(self):
        return self.__tipo
    @tipo.setter
    def tipo(self,newValor):
        self.__tipo=newValor
    def calcularTotal(self,producto,unidades):
        importe = producto.__precio
        resultado = importe*unidades
        print(resultado)
teclado = Producto("A-8754254","Teclado Microsoft",20.79,"Baja Gama")
print(teclado.__dict__)
print(teclado.codigo)
teclado.codigo = "A-8754254-0"
print(teclado.codigo)
altavocesLogitech = Producto("B-54545785","Altavoces Logitech",14.99,"Marketplace")
monitor = Producto("M-32185454","Monitor MSI",129,"Muy caro")
 
class Pedido:
    lista_productos = []
    cantidades = []
    def __init__(self,lista_productos=[],cantidades=[]):
        self.lista_productos
        self.cantidades
        print("El pedido ha sido creado")
    def total_pedido(self):......................



Que rápida respuesta, gracias gracias 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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por joel (901 intervenciones) el 17/03/2021 15:43:07
Según entiendo, cuando llames la clase Pedido, le pasaras una lista de los productos, no?

Según yo veo, la clase pedido tendría que instanciar la clase Producto... algo así:

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
class Producto:
    __codigo=""
    __nombre=""
    __precio=0
    __tipo=""
    def __init__(self,codigo,nombre,precio,tipo):
        self.__codigo=codigo
        self.__nombre=nombre
        self.__precio=precio
        self.__tipo=tipo
        print(("El producto {} con código {} ha sido creado.").format(self.nombre,self.codigo))
    def __del__(self):
        print("Has eliminado el producto")
    @property
    def codigo(self):
        return self.__codigo
    @codigo.setter
    def codigo(self,newValor):
        self.__codigo=newValor
    @property
    def nombre(self):
        return self.__nombre
    @nombre.setter
    def nombre(self,newValor):
        self.__nombre=newValor
    @property
    def precio(self):
        return self.__precio
    @precio.setter
    def precio(self,newValor):
        self.__precio=newValor
    @property
    def tipo(self):
        return self.__tipo
    @tipo.setter
    def tipo(self,newValor):
        self.__tipo=newValor
    def calcularTotal(self,producto,unidades):
        importe = producto.__precio
        resultado = importe*unidades
        print(resultado)
 
class Pedido:
    lista_productos = []
    def __init__(self):
        pass
 
    def addProducto(self, codigo, nombre, precio, tipo):
        self.lista_productos.append(Producto(codigo, nombre, precio, tipo))
 
    def total_pedido(self):
        total=0
        for producto in self.lista_productos:
            total+=producto.precio
        return total
 
pedido = Pedido()
pedido.addProducto("A-8754254","Teclado Microsoft",20.79,"Baja Gama")
pedido.addProducto("A-8754255","Teclado Microsoft2",20.79,"Baja Gama2")
pedido.addProducto("M-32185454","Monitor MSI",129,"Muy caro")
 
print(pedido.total_pedido())

Aunque pasandole la lista también esta bien!!!
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 17/03/2021 16:01:31
MUCHAAAAS GRACIAS !!!

El caso es que el ejercicio en si me lo pide a través de dos listas.
La verdad, no veo muy lógico el ejercicio o quizás si lo que quieren es volverme loco (no digo tu sino el responsable del ejercicio pero no contesta).
Aunque no fuera con dos listas o si, ¿Cómo podría indicar que hay más de una unidad de alguno de los productos por ejemplo? sin tener que añadirlos manualmente.

Ej:
2 ud de teclado
3 ud de pantalla

Es que además, luego me interesaría crear una función que permita ver todo el pedido con las cantidades de cada producto.

Me encanta esto, gracias por tu ayuda, eres genial.
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 18/03/2021 13:25:25
Buenos días,
Ayer respondiste a un comentario anterior pensando que era el último y este de aquí se te pasó.

------------>

El caso es que el ejercicio en sí me lo pide a través de dos listas.
La verdad, no veo muy lógico el ejercicio o quizás si lo que quieren es volverme loco (no digo tú sino el responsable del ejercicio, pero no contesta).
Aunque no fuera con dos listas o si, ¿Cómo podría indicar que hay más de una unidad de alguno de los productos por ejemplo? Sin tener que añadirlos manualmente.

Ej:
2 ud de teclado
3 ud de pantalla

Es que además, luego me interesaría crear una función que permita ver todo el pedido con las cantidades de cada producto.

Me encanta esto, gracias por tu ayuda, eres genial.
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por juan jose (1 intervención) el 12/10/2022 16:36:35
hola amigo no se si ya lo resolviste te lo agradeceria si me puedes ayudar con el codigo 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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por joel (901 intervenciones) el 18/03/2021 16:20:09
Hola Eric, no entiendo bien tus duda...
que es para ti una "unidad"? te refieres a la cantidad que hay de un producto? Si es así, en la clase Producto, tendrías que añadir la variable cantidad o algo similar... y al agregar un nuevo producto, comprobar que no exista ya.

permita ver todo el pedido con las cantidades de cada producto
Seria algo similar al método total_pedido, pero en vez de sumar, devuelve una lista o muestra por pantalla los productos.


No se si me he sabido explicar...
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 19/03/2021 10:55:56
Si, cuando digo unidades me refiero a la cantidad de cada producto.

Como te decía, el ejercicio en si me solicita realizar un método que calcule el total del pedido pero a partir de dos listas (lista de productos y lista cantidades) que deben estar en la clase producto para que con el método ingreses el producto y también la cantidad del mismo.

Como la cantidad de productos puede variar en cada pedido y la cantidad de cada uno de ellos, he pensado también en la alternativa de usar **kwargs en el constructor o transformar las dos lista a un diccionario aunque no es así como se solicita si no con las listas. En teoria es algo sencillo pero yo no consigo verlo.

Cualquier alternativa llegados a este punto me valdría aunque me gustaría que fuera como me lo solicitan.

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 Florentino

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Florentino (2 intervenciones) el 08/03/2022 10:25:13
bueno parece que este ejercicio lleva algún tiempo ya repitiéndose en varias partes incluso en mi curso que me ha costado un paston, es exactamente el mismo y parece que tenemos el mismo problema los metodos y lo que pide el profesor. comprobare estos metodos, calcular_total y total_pedido,
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 17/03/2021 12:50:00
Las sangrías se marcharon...discúlpame. ¿Lo entiendes así?
Dame todo consejo que creas conveniente :)
No me lo tomo a mal, soy un novato.
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por joel (901 intervenciones) el 17/03/2021 15:28:46
El primer botón del editor es para poner código... con sus tabulaciones, etc...
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

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por Eric (7 intervenciones) el 17/03/2021 15:30:32
Pues ver las tabulaciones correctamente? En el móvil veo que si me aparecen.
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función calcular total de pedido a partir de una clase con dos listas. Lista Productos y Cantidades

Publicado por joel (901 intervenciones) el 17/03/2021 17:13:24
Los responsables de la web cuando lo detectan lo modifican.
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