2015-10-10 4 views
1
def purchase(amount, day, month, country): 
    global history 
    history += [0, 0, days_in_months(month - 1) + day] 
    if history[len(history) - 1] <= history[len(history)]: 
     return "Successful purchase" 
    else: 
     return "error" 

Когда я пытаюсь запустить это, я получаю сообщение «индекс индекса вне диапазона» Как исправить это?Список Python: индекс вне диапазона?

ответ

2

Поскольку history[len(history)] обращается за пределы массива, если у вас есть массив из 3-х элементов, например, последний элемент будет history[2] в то время как len(history) будет 3, который находится за пределом. Массивы подсчитываются от 0 в Python.

0

Вы пытаетесь посмотреть индекс списка энный с п записей. Это всегда будет терпеть неудачу. Например. список длины 3 никогда не будет иметь значения, хранящегося в индексе 3, поскольку индексы основаны на нулевом значении и поэтому равны 0, 1, 2.

В вашем случае history[len(history) - 1] вернет последний элемент history, вы не можете пойти кроме этого индекса.

Смежные вопросы