打印清单项目的总和

时间:2020-01-23 17:41:25

标签: python

我需要打印一个人在产品上花费的总金额,我知道代码很糟糕,但这就是我收到任务的方式。从未使用过Python,所以这对我来说有点神秘。

到目前为止我的结果

enter image description here

Jeroen的结果应该是950,Martijn的结果是1175,Bart的结果应该是800,而无需单独打印。

#start opdracht3 class
class opdracht3:

#start product class
class Product:
    #constructor
    def __init__(self, productname, price):
        self.productname = productname
        self.price = price
#end product class

#person class
class Person:       
    #constructor
    def __init__(self, name, email, productlist):
        self.name = name
        self.email = email
        self.productlist = productlist  

    #adding products to person's collection
    def buyItem(self, item):            
        self.productlist.append(item)
#end person class

#collection of persons
persons = []

#defining person1 with the items he has bought
productlist1 = []
person1 = Person("Jeroen","jbm.mutsters@avans.nl", productlist1)
product1 = Product("Moto G7",150)
person1.buyItem(product1)
product3 = Product("iPhone",800)
person1.buyItem(product3)

#defining person2 with the items he has bought
productlist2 = []
person2 = Person("Martijn","m.dereus1@avans.nl", productlist2)
product2 = Product("iPhone",800)
person2.buyItem(product2)
product5 = Product("iPad",375)
person2.buyItem(product5)

#defining person2 with the items he has bought
productlist3 = []
person3 = Person("Bart","b.linsen@avans.nl", productlist3)
product4 = Product("iPhone",800)
person3.buyItem(product2)

#add person1 and person2 to the persons collection
persons.append(person1)
persons.append(person2)
persons.append(person3)

#generating output
for p in persons:
    print(p.name)       
    for i in p.productlist:         
        print(i.productname)
        print(i.price)
    print("-----------------")      
print("einde output")
print("***************")
#end generating output

#end opdracht3 class

谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用内置的<!-- recreation of: https://codepen.io/natewiley/pen/GgONKy --> <div class="wrap"> <div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div><div class="c"></div> </div>来找到总和,并使用列表推导来获取商品价格:

class Foo<T> {
    public static void f(T param) {}
}

答案 1 :(得分:1)

相同,但作为实例方法:

class Person:
    def __init__(self, name, email, productlist):
        self.name = name
        self.email = email
        self.productlist = productlist

    def buyItem(self, item):
        self.productlist.append(item)

    def get_sum_spend(self):
        return sum([product.price for product in self.productlist])

此外,Python中通常不使用驼峰案例方法命名。您可以在pep8中阅读更多内容。

答案 2 :(得分:0)

我将方法sum_product_prices添加到人员类,该方法将人员产品列表中产品的价格相加。将人员添加到列表人员,并打印出sum_product_prices的返回值。我删除了opdracht 3类,因为它未被使用。

#start product class
class Product:
    #constructor
    def __init__(self, productname, price):
        self.productname = productname
        self.price = price
#end product class

#person class
class Person:
    #constructor
    def __init__(self, name, email, productlist):
        self.name = name
        self.email = email
        self.productlist = productlist

    #adding products to person's collection
    def buy_item(self, item):
        self.productlist.append(item)

    def sum_product_prices(self):
        sum = 0
        for product in self.productlist:
            sum += product.price
        return sum

#end person class

#collection of persons
persons = []

#defining person1 with the items he has bought
productlist1 = []
person1 = Person("Jeroen","jbm.mutsters@avans.nl", productlist1)
product1 = Product("Moto G7",150)
person1.buy_item(product1)
product3 = Product("iPhone",800)
person1.buy_item(product3)
persons.append(person1)

productlist2 = []
person2 = (Person("Martijn","x@y.com",productlist2))
person2.buy_item(product3)
product4 = Product("iPad",375)
person2.buy_item(product4)
persons.append(person2)

productlist3 = []
person3 = Person("Bart","a@b.com",productlist3)
person3.buy_item(product4)
persons.append(person3)

for person in persons:
    print(person.name + " " + str(person.sum_product_prices()))