python中的list索引超出范围

2024-10-02 22:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 代码nonereturnif编译器defelsemax
1条回答
网友
1楼 · 发布于 2024-10-02 22:23:18

唯一可能的原因是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

相关问题 更多 >