如何从python中的对象数组中获取某个值

时间:2016-07-10 10:25:33

标签: python-3.x

好的,所以这是我的程序到目前为止作为一个咖啡馆的订购系统,有多个项目。我的目标是计算订单的价格,存储该订单以保持订购哪种咖啡的数量以及订购了多少咖啡。现在我不得不计算订单的订单总额。我坚持的主要问题是根据用户的需求获得咖啡的咖啡价格,如果我想要x咖啡,我需要得到咖啡的价格。我已经在一个阵列中存储了咖啡的实例,现在我不确定如何在计算总价格时使用咖啡的价格

class Coffee(object):

def __init__ (self, coffee_type, price):
    self.coffee_type = coffee_type
    self.price = price

class Order(object):

def __init__(self, coffee_type, coffee_amount):
    self.coffee_type = coffee_type
    self.coffee_amount = coffee_amount

如果名称 ==“主要”:

coffee_available=[Coffee("1 : Flat White", 3.50), 
                  Coffee("2 : Long Black", 3.50), 
                  Coffee("3 : Cappuccino", 4.00), 
                  Coffee("4 : Espresso", 3.25), 
                  Coffee("5 : Latte", 3.50)]

ordering = 'Y'
total_cost = 0

while ordering == 'Y':

    print("Coffee Type\t\tPrice")
    print("-----------\t\t-----")
    for coffee in coffee_available:
        print("{}\t- - -\t$ {}".format(coffee.coffee_type,coffee.price))
    print()
    order_coffee = int(input("What is the number of the coffee you want? "))

    order_amount = input("How many would you like to order? ")

    new_order = None

    if order_coffee >= 1 and order_coffee <=5:
        coffee_choice = coffee_available[coffee.price]
        new_order = Order(coffee_choice, order_amount)
        total_cost = new_order.coffee_type * order_amount

    else:
        print ("Please enter a valid number")

    dine_in = input('You like to dine in? (Y/N)')
    dine_in = dine_in.upper()

    if dine_in == 'Y' or 'YES':
        total_cost = total_cost + (total_cost * 0.1)
        print (total_cost)
        Ordering = 'N'

    elif dine_in == 'N' or 'No':
        total_cost = total_cost             
    else:
        print("Please enter a valid input")
        continue

1 个答案:

答案 0 :(得分:0)

最好从名称中分割出咖啡的ID:

class Coffee(object):
    def __init__ (self, coffee_id, coffee_type, price):
        self.coffee_id = coffee_id
        self.coffee_type = coffee_type
        self.price = price

然后在创建对象时使用:

Coffee(1, "Flat White", 3.5)

当你想要使用价格时:

def get_price(coffee_available, coffee_id):
    for coffee in coffee_available:
        if coffee.coffee_id == coffee_id:
            return coffee.price
    return None