这可以通过循环来完成吗?或者也许通过使用列表?

Uts*_*jee 2 python loops

我写这个是为了计算改变所需的最小票据和硬币数量.这可以使用循环完成吗?

def user_change(balance):
        twen = int(balance/20)
        balance=balance%20
        ten = int(balance/10)
        balance=balance%10
        five = int(balance/5)
        balance = balance%5
        ones = int(balance/1)
        balance = balance%1
        quart = int( balance/0.25)
        balance = balance%0.25
        dime = int(balance/0.10)
        balance = balance%0.10
        nickel = int(balance/0.05)
        balance = balance%0.05
        pennies = int(balance/0.05)
        print twen
        print ten
        print five
        print ones
        print quart
        print dime
        print nickel
        print pennies

    user_change(34.36) 
Run Code Online (Sandbox Code Playgroud)

roi*_*ppi 7

这是一个很好的时间(好的,这总是一个好时机)让自己更容易,并首先考虑数据结构.您有一个货币(密钥)列表,对于每个密钥,您希望为(值)找到一个唯一的金额.k:v对意味着a dict,所以填一个代替只打印值; 你可以随时打印......

def make_change(bal):
    currency = [20,10,5,1,.25,.1,.05,.01]
    change = {}
    for unit in currency:
        change[unit] = int(bal // unit)
        bal %= unit
    return change
Run Code Online (Sandbox Code Playgroud)

(无论何时使用%=操作员,都应该感觉很酷)