我刚刚开始学习python,我的水平是0,我只是检查了1个程序,它给了我错误:
IndexError:列表索引超出范围
def array123(nums):
for i in range(len(nums)):
if nums[i]==1 and nums[i+1]==2 and nums[i+2]==3:
return True
return False
if __name__=="__main__":
array123([0, 2, 2,1,2])
IndexError Traceback(最近的呼叫 最后) ----> 1个array123([0,2,2,1,2])
在array123(nums)中 1个def array123(nums): 2代表我在范围内(len(nums)): ----> 3,如果nums [i] == 1和nums [i + 1] == 2以及nums [i + 2] == 3: 4返回True 5返回False
IndexError:列表索引超出范围
请让我解释一下逻辑。
答案 0 :(得分:1)
由于您的数组实际上不包含序列“ 1、2、3”,因此i将递增至3,然后对“ i + 3”的检查将访问超出范围的元素#6。
您的循环应该是for i in range(len(nums)-len(searchString))
和searchString = "123"
。
请在您的问题中添加语言作为标签。