def Entekhab3_fun():
h = 0
Max = 1
while(h <= 10):
if(Montakhabha[h] == None):
break
elif(Montakhabha[h] > Max):
Max = Montakhabha[h]
elif(Montakhabha[h] == Max):
Max = Montakhabha[h]
else:
Max = Max
h += 1
return(Max)
这是编译器引用的我的代码的一部分,我无法理解它有什么问题,但是当我编译它时,它说:
indexerror: list index out of range
最佳答案
唯一可能的原因是 Montakhabha
元素少于 11 个。注意你的情况是h <= 10
,所以您正在检查 Montakhabha[10]
也在您的代码中。
最安全的方法是将其更改为
while h < len(Montakhabha)
一些旁注:
- 第一个检查可能应该是
continue
而不是break
(最后一个Max=Max
作业也应该如此)。 - 使用
x is None
而不是x==None
。它是安全的,因为None
是一个单例值。 - 第二个和第三个条件做同样的事情
总的来说,似乎你想做的是
max_value = 0
for element Montakhabha:
if element > max_value:
max_value = element
关于python - python中的列表索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294071/