2013-07-05 27 views
0
while 1: 
    pie = 50 
    pieR = pie 
    pieRem = pieR - buy 
    print("We have ", pieRem, "pie(s) left!") 
    buy = int(input("How many pies would you like? ")) 
    pieCost = 5 
    Pie = pieCost * buy 
    if buy == 1: 
     print(pieCost) 
     pieS = pieR - buy 
    elif buy > 1: 
     print(Pie * 0.75) 
    else: 
     print("Please enter how many pies you would like!") 

當我打開控制檯時,它詢問我想要購買多少個餡餅,而且我已經制作出了我們剩下的餡餅數量,但每次餡餅的價值都會刷新。所以如果我選擇了我第一次想要2個餅的話,那麼我們還剩下48個餅(默認餅值爲50),然後在第二次問我後,我輸入3,而不是下降到45,它刷新並下降到47.我如何使我的蟒食品計算器保持一致?

我希望我解釋得很好,希望有人知道如何解決這個問題,謝謝。

回答

3

您的每一次代碼循環回到起點,pie被重新定義爲50.你要定義while循環的變量pie外:

pie = 50 
while 1: 
    ... 

很抱歉,但你的代碼是一團糟,尤其是變量名稱。我清理了你:

buy = 0 
pies = 50 
cost = 5 
while 1: 
    print("We have ", pies, "pie(s) left!") 
    buy = int(input("How many pies would you like? ")) 
    price = cost * buy 
    if buy == 1: 
     print(price) 
     pies -= 1 
    elif buy > 1: 
     print(buy * 0.75) 
     pies -= buy 
    else: 
     print("Please enter how many pies you would like!") 
+0

我試過了,但它仍然刷新 –

+0

@SamirChahine我已經清理了你的代碼 – TerryA

+0

檢查我的答案itworks。 @Haidro有一些錯誤,比如'pies-buy'等 – suhailvs

1

從@Haidros代碼下面

buy,pies,cost = 0,50,5 
while 1: 
    if pies<1: 
     print ('Sorry no pies left') 
     break 
    print("We have ", pies, "pie(s) left!") 
    buy = int(input("How many pies would you like? ")) 
    if pies-buy<0:buy = int(input("Only %s pies remaining How many pies would you like?"%pies))     
    if buy>0: 
     if buy==1:print(cost*buy) 
     else:print(cost*buy * 0.75) 
     pies-=buy  
    else: 
     print("Please enter how many pies you would like!") 
+2

這只是我的答案的副本,密集的代碼,看起來很糟糕:'稀疏比密集好。' – TerryA

+0

@Haidro對不起,我會提及你的代碼中的名稱。抱歉!! :-( – suhailvs

0

如果您使用的類和你同全局變量做以外的物體,你可以輕鬆地擴展代碼到其他產品(例如:牛角麪包,百吉餅,湯,咖啡,三明治或任何..)

class pies: 
""" Object To Sell Pies """ 

def __init__(self): 
    """ Constructor And Initialise Attributes """  
    self.pies=50 
    self.amount = 0  
    self.cost = 5 

def buy(self,buy): 
    """ Method To Buy Pies """  

    if (buy > self.pies): 
     print "Sorry Only %d Pies in Stock" % self.pies 
    elif (self.pies >= 1): 
     self.pies =self.pies - buy 
     print "Cost is : %.02f" % (0.75 * buy) 
     print "We have %d and pies in stock" % (self.pies) 
    elif (self.pies == 1): 
     self.pies =self.pies - buy 
     print "Cost is : %.02f" % (self.cost * buy) 
     print "We have %d pies in stock now" % (self.pies) 

    else: 
     print "Sorry Pies Out of Stock !" 
     self.buy = 0 
     self.pies = 0 

除上文pieobject.py那麼代碼這個稱呼它:

#!/usr/bin/env python 

import os 
from pieobject import pies 

p = pies() 

while True: 

    try: 
     amount=int(raw_input('Enter number of pies to buy:')) 
    except ValueError: 
     print "Not a number"  
     break 

    os.system('clear') 
    p.buy(amount)