我正在練習一些新獲得的技能,並希望挖掘社區對下面代碼的一些反饋。尋求反饋,無限循環
目標:創建一個簡單的程序,通過解構變化的組成部分(美元,四肢等)來幫助想象中的收銀員恢復正確的變化。 我能想到做這件事的最好方法是使用帶有嵌套while循環的if語句。
2個問題:
1)。儘管條件runningTotal!= change不再滿足,while循環並沒有終止在腳本的末尾。爲什麼這到底?是不是應該在這個條件滿足之前運行,並且被終止?我必須錯過一些東西......有沒有什麼明顯的,我錯過了你們/加爾斯看到的?
2)。我仍然是初學者(正如你可能會說的)。你對下面的腳本有什麼反饋意見。事情我做得很好,很差或只是一般的想法。我真的想變得更好,所以你的意見非常感謝。謝謝!
腳本:
def changeCalc(cost,pmt):
change = float(pmt - cost)
print("Total Change: " + str(change))
runningTotal = 0 #used to count up the change paid in the while loop below
#make sure they paid enough
if (pmt - cost) < 0:
print("The customer needs to pay " + str(abs(change)) + " more.")
else:
#check to see if any change is due
while runningTotal != change:
#how many DOLLAR bills to return
dollarBills = int(change - runningTotal)
print("Number of Dollar Bills: " + str(dollarBills))
#add to runningTotal
runningTotal = float(runningTotal + dollarBills)
print runningTotal
#how many QUARTERS to return
numOFqtrs = int((change - runningTotal)/(.25))
print("Number of Quarters: " + str(numOFqtrs))
#add to running total
runningTotal = float(runningTotal + (numOFqtrs * (.25)))
print runningTotal
#how many DIMES
numOFdimes = int((change - runningTotal)/(.10))
print("Number of Dimes: " + str(numOFdimes))
runningTotal = float(runningTotal + (numOFdimes * (.10)))
#how many NICKELS
print runningTotal
numOFnickels = int((change - runningTotal)/(.05))
print("Number of nickels: " + str(numOFnickels))
runningTotal = float(runningTotal + (numOFnickels * (.05)))
print runningTotal
#how many PENNIES
numOFpennies = int((change - runningTotal)/(.01))
print("Number of Pennies: " + str(numOFpennies))
runningTotal = float(runningTotal + (numOFpennies * (.01)))
print runningTotal
print change
#####WHY DOES THE LOOP NOT END HERE??????????##########
break
運行changeCalc(87.63,103.86)導致具有以下輸出無限循環。
Total Change: 16.23
Number of Dollar Bills: 16
16.0
Number of Quarters: 0
16.0
Number of Dimes: 2
16.2
Number of nickels: 0
16.2
Number of Pennies: 3
16.23
16.23
通常不好檢查與浮點數,特別是1/10,這不能完全表示。也許考慮使用整數爲美分而不是浮動美元。 –
或者您可以使用Decimal http://docs.python.org/2/library/decimal.html – M4rtini