簡體   English   中英

為什么我得到范圍錯誤的索引?

[英]Why am i getting index of the range error?

def oburparaust(liste, money):
moneycontrol = 0.0
coin=0
control = 0
while True:
    if liste[control] > money:
        control+=1
    else:
        moneycontrol+=liste[control]
        coin+=1
        if moneycontrol==money:
            break
        elif moneycontrol > money:
            moneycontrol-=liste[control]
            coin-=1
            print(moneycontrol)
            if control>len(liste)-1:
                print(moneycontrol)
                control=len(liste)-1
            else:
                control+=1
    #print(coin)
oburparaust([1.0, 0.50, 0.25, 0.10, 0.05, 0.01], 5.38)

我想計算 5.38 的錢用了多少硬幣。 但是我得到了范圍錯誤的索引,我找不到為什么我要遍歷列表?

錯誤;

Traceback (most recent call last):
     File "xxxx", line 26, in 
     oburparaust([1.0, 0.50, 0.25, 0.10, 0.05, 0.01], 5.38)
     File "xxxx", line 6, in oburparaust
     if liste[kontrol] > a:
     IndexError: list index out of range
     moneycontrol:  1.0    Coin:  1
     moneycontrol:  2.0    Coin:  2
     moneycontrol:  3.0    Coin:  3
     moneycontrol:  4.0    Coin:  4
     moneycontrol:  5.0    Coin:  5
     moneycontrol:  5.0    Coin:  5
     moneycontrol:  5.0    Coin:  5
     moneycontrol:  5.25    Coin:  6
     moneycontrol:  5.25    Coin:  6
     moneycontrol:  5.35    Coin:  7
     moneycontrol:  5.35    Coin:  7
     moneycontrol:  5.35    Coin:  7
     moneycontrol:  5.359999999999999    Coin:  8
     moneycontrol:  5.369999999999999    Coin:  9
     moneycontrol:  5.379999999999999    Coin:  10
     moneycontrol:  5.379999999999999    Coin:  10

您有包含 6 個項目的列表“liste”,這意味着您的索引以 0 開頭並以 5 結尾,當您的變量控件的值為 6 時,索引將超出范圍。 如果它小於列表“liste”的長度,您將需要控制該變量“control”。 就像是:

def oburparaust(liste, money):
    moneycontrol = 0.0
    coin=0
    control = 0
    while control < len(liste):
           . . . 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM