Python 3.x 如何处理错误'';列表索引超出范围“;作为例外?
问题是,我得到了一些代码,并且它的结构是这样的,我们希望能够访问列表中未初始化的元素。(我不想改变它背后的逻辑,因为它涉及一些数学概念)。但是我已经得到了一些其他语言的代码,我想用python做同样的事情(处理这个异常并让程序运行)Python 3.x 如何处理错误'';列表索引超出范围“;作为例外?,python-3.x,list,exception,Python 3.x,List,Exception,问题是,我得到了一些代码,并且它的结构是这样的,我们希望能够访问列表中未初始化的元素。(我不想改变它背后的逻辑,因为它涉及一些数学概念)。但是我已经得到了一些其他语言的代码,我想用python做同样的事情(处理这个异常并让程序运行) a=[] 对于范围(1,10,2)中的i:a.append(i) 对于范围(10)内的j: 尝试: a[i]+=1 最后: a、 附加(1) --------------------------------------------------------------
a=[]
对于范围(1,10,2)中的i:a.append(i)
对于范围(10)内的j:
尝试:
a[i]+=1
最后:
a、 附加(1)
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
对于范围(10)内的j,为3:
4.尝试:
---->5a[i]+=1
6最后:
7 a.追加(1)
索引器:列表索引超出范围
然后我尝试了其他方法(在阅读了类似的堆栈溢出帖子之后)
a=[]
对于范围(1,10,2)中的i:a.append(i)
对于范围(10)内的j:
如果(a[j]):a[j]+=1
其他:
a、 附加(1)
ndexError回溯(最近一次呼叫最后一次)
在里面
对于范围(10)内的j,为3:
4.
---->5如果(a[j]):a[j]+=1
6其他:
7 a.追加(1)
索引器:列表索引超出范围
正如您所看到的,错误仍然存在。您可以通过以下方式处理它:
except IndexError:
pass
完整代码:
a = []
for i in range(1, 10, 2): a.append(i)
for j in range(10):
try:
a[i] += 1
except IndexError:
pass
finally:
a.append(1)
检查第一个
循环后列表的长度在第一个示例中,将第5行的a[i]+=1
替换为a[j]+=1
。第二个示例中的错误是另一个错误。如果(a[j])
,则不能执行,因为如果a[j]
不存在,则会引发索引器
except IndexError:
pass
a = []
for i in range(1, 10, 2): a.append(i)
for j in range(10):
try:
a[i] += 1
except IndexError:
pass
finally:
a.append(1)
a = []
for i in range(1,10,2):
a.append(i)
try:
for j in range(10):
a[i] +=1
except:
pass
finally:
a.append(1)
print(a)