在頁面底部更新我的新代碼作爲答案。如果/ elif/else語句對錢有幫助
因此,對於我的CS 170課程,我們必須製作一個程序,用戶輸入的價格低於10美元,而且硬幣,紙幣或50美分的零件數量最少。對於大部分節目做得很好,當你遇到一個x.x0 如以下情況除外:
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Amount due:
7.80
Amount in return
2.20.
Quaters in return 8.
Dimes in return 0.
Nickels in return 4.
>>>
程序完全跳過了角錢節,直接到鎳提供4作爲一個解決方案時,最少應該是8個季度,2個角錢和結束。此外,我對循環不是很熟練,但我知道這將是可能的,並且更短的代碼,清理代碼建議也會很好。謝謝你的幫助!
# optional.py
# Calculating the least amount of change in return for a $10 bill.
## amount due
due = input("Amount due:\n ")
## if amount is more than 10, exit program
if due > 10.00:
print "Please enter a number lower then 10.00."
exit()
## if amount is less than 0, exit program
if due < 0:
print "Please enter a number greater than 0.00."
exit()
## subtract amount from 10
else:
change = 10.00 - due
print "Amount in return\n %0.2f." % change
## if amount is 0, no change
if change == 0:
print "No change in return."
## passes expression if previous not met
pass
elif change >= .25:
## setting q, dividing change by .25
q = change/.25
## maaking q an integer
quaters = int(q)
print "Quaters in return %r." % quaters
## subtracting quaters from chane
change = change - (quaters *.25)
if change < .10:
pass
elif change >= .10 <= .24:
d = change * .1
dimes = int(d)
print "Dimes in return %r." % dimes
change = change - (dimes * .1)
if change < .05:
pass
elif change >=.05 <=.09:
n = change/.05
nickels = int(n)
print "Nickels in return %r." % nickels
change = change - (nickels * .05)
if change == .01:
pennies = change/.01
print "Pennies in return %r." % pennies
elif change >=.01 <=.04:
p = change/.01
print "Pennies in return %0.0f." % p
'elif的變化> = 0.10和變化<= .24'可以寫成'的elif 0.10 <=變化<= .24' –
擴展Greg的警告提防浮點:考慮更改= 6.60。 int(6.60/0.25)給出了26個季度。當我們從變化中減去26個季度(6.60 - 0.25 * 26)時,我們得到0.099999999999999645的剩餘變化,小於0.10的硬幣值。所以你的算法最終會給出6.59而不是6.60的變化。而不是浮點使用十進制模塊錢(http://docs.python.org/library/decimal.html)或按照格雷格的建議轉換爲分,所以你可以處理整數。 –