索引超出范围,找不到确切的错误

时间:2018-09-10 03:46:42

标签: python python-3.x

我本质上是编码新手,而且我一直在阅读有关Python的文章。但是我似乎在我的代码中找不到错误。如果您能帮助我,那就太好了。也欢迎任何更正或观察。 我遇到此错误:

代码原因错误

a b c d y
1 2 3 4 10

错误:

if ((lista1[1] >= lista1[2]) and (lista1[2] >= 0)):

我的代码:

IndexError: list index out of range

2 个答案:

答案 0 :(得分:1)

在python中,列表索引从0开始。 如果将代码更改为

,它应该可以工作
if ((lista1[0] >= lista1[1]) and (lista1[1] >= 0))

答案 1 :(得分:0)

这是因为python索引从零开始,所以:

...

def ECM(lista1, res_ced):

    if ((lista1[0] >= lista1[1]) and (lista1[1] >= 0)):
        n_ECM = res_ced/lista1[0]
    elif ((lista1[0] >= 0) and (lista1[1] <= 0)):
        n_ECM = res_ced/(lista1[0]-lista1[1])
    else: 
        n_ECM = res_ced/(-lista1[1])
    print("El factor de seguridad ECM es:")
    print(n_ECM)
...

lista1是:

[1,3]

它仅包含元素,因此:

-------     -------
|  1  |     |  3  |
-------     ------- 

   0           1