2014-10-07 37 views
-1

好吧,所以我正在用Python創建收銀機命令行程序。我希望程序能夠告訴我們有多少二十,幾十,五,一,四分之一,一角硬幣,五分硬幣和便士應該作爲變化。我知道什麼方程式需要關閉,我可以弄清楚如何打印二十幾歲,但我似乎無法弄清楚從哪裏去。例如,我的代碼看起來像這樣:能夠在Python中的if-else語句中執行多種事情嗎?

if change >= 2000: 
     twenties = change/2000 
     moneyform = "%i" % twenties 
     print("Twenties "), moneyform 
    else: 
     print("Twenties: 0") 
    next = change - 2000 
    if next >= 1000: 
     tens = next/1000 
     moneyformtwo = "%i" % tens 
     print("Tens "), moneyformtwo 
    else: 
     print("Tens: 0") 

依此類推,等等。

現在我知道我沒有正確地做到這一點,但會發生什麼是二十幾歲打印正確,但然後程序停止,而不會繼續到十。我應該怎麼做才能解決這個問題?

+0

該代碼不會運行,因爲您的縮進沒有任何意義。請重現您實際擁有的縮進,以便我們可以告訴您爲什麼它是錯誤的。 – khelwood 2014-10-07 18:45:48

+0

@khelwood好吧。完成。 – 2014-10-07 18:49:37

+2

看起來你在這裏有一個if-else-elif-else塊,這不是合法的python。一個elif不能在別的之後來。請發佈您的實際代碼。 – Kevin 2014-10-07 18:50:13

回答

2

爲什麼即使使用if/else語句?

twenties = int(change/2000) 
change = change % 2000 

tens = int(change/1000) 
change = change % 1000 

fives = int(change/500) 
change = change % 500 

打印結果在最後

編輯:我做同樣的假設,我的回答是整個數字代表美分,當你在你的問題做了發言。試試這個頂部:

amount_paid = 50.00 
price = 24.50 
change = amount_paid*100 - price*100 
+0

如果我這樣做,而我輸入24.50作爲價格,50.00作爲給定的數量,它說我應該給0二十回? – 2014-10-07 19:06:02

+0

@HunterWatkins - 在你的問題的文本中,你似乎假設整數代表美分。湯姆在你的問題中對你的回答作了合理的假設。因此,如果您輸入24.50作爲價格,並輸入50.00作爲金額,則解釋爲24.5美分和50美分。你的變化是25.5美分。很公平。 – ArtOfWarfare 2014-10-07 19:14:17

+0

@tom s好的,完美的。謝謝! – 2014-10-07 19:16:23