我本质上是编码新手,而且我一直在阅读有关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
答案 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