列表索引在python中超出范围

问题描述 投票:-1回答:1
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:列表索引超出范围

python linux loops ubuntu compiler-errors
1个回答
5
投票

唯一可能的原因是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
© www.soinside.com 2019 - 2024. All rights reserved.