我嘗試做以下項目:困惑AttributeError的Python中
想象你已經開始了一個小餐館,並試圖使其更容易採取和計算的訂單。由於您的餐廳只銷售9種不同的商品,因此您將每個商品分配給一個數字,如下所示。
Chicken Strips - $3.50
French Fries - $2.50
Hamburger - $4.00
Hotdog - $3.50
Large Drink - $1.75
Medium Drink - $1.50
Milk Shake - $2.25
Salad - $3.75
Small Drink - $1.25
要快速接受訂單,您的程序應該允許用戶鍵入一串數字,然後它應該計算訂單的成本。例如,如果訂購了一個大型飲料,兩個小飲料,兩個漢堡包,一個熱狗和一份沙拉,用戶應該輸入5993348,程序應該說它的成本爲19.50美元。此外,請確保程序循環,以便用戶可以執行多個訂單,而不必每次都重新啓動程序。
我的代碼看起來像這樣至今:
print "------------------Menu-------------------"
class Menu_Item():
def __init__(self, num,item,price):
self.num = num
self.item = item
self.price = price
def __repr__(self):
return "\n" + str(self.num) + ". " + self.item + " - $" + str(self.price) + ' dollars'
Strips = Menu_Item(1,'Chicken Strips', 3.50)
Fries = Menu_Item(2,"Fries",2.50)
Burger = Menu_Item(3,"Burger",4.00)
Hotdog = Menu_Item(4,"Hotdog",3.50)
Large_Drink = Menu_Item(5,"Large Drink",1.75)
Medium_Drink = Menu_Item(6,"Medium Drink", 1.50)
Milkshake = Menu_Item(7,"Milkshake", 2.25)
Salad = Menu_Item(8,"Salad", 3.75)
Small_Drink = Menu_Item(9,"Small Drink", 1.25)
Class_Items = [Strips,Fries,Burger,Hotdog,Large_Drink,Medium_Drink,Milkshake,Salad,Small_Drink]
print Class_Items
def take_order():
count = 0
string = raw_input("Enter your order")
order = []
for a in string:
order.append(a)
for food in Class_Items:
for b in order:
if b == Menu_Item.num:
count = count + Menu_Item.price
return count
else:
print "-"
take_order()
我收到以下錯誤。我已經嘗試了很多方法來完成這項工作,但我無法弄清楚爲什麼編譯器不能識別num屬性。有關爲何發生這種情況的任何建議?謝謝!
Traceback (most recent call last):
File "python", line 43, in <module>
File "python", line 37, in take_order
AttributeError: class Menu_Item has no attribute 'num'
非常有幫助!謝謝 – brianhalperin
@brianhalperin如果您提出並點擊了選中標記,我將獲得回答的聲望。聲譽是非常寶貴的。 –