这是一个检索,从列表b1中找到num1的位置,检索结果放进列表b2
我的问题是为啥需要try except才能成功,没有try except就不成功
下面这个是运行不成功的代码:
b1=[5,10,5]
num1=5
start=0
b2=[]
while 1:
x=b1.index(num1,start)
b2.append(x)
start=x+1
print(b2)
下面这个是运行成功代码:
b1=[5,10,5]
num1=5
start=0
b2=[]
while 1:
try:
x=b1.index(num1,start)
b2.append(x)
start=x+1
except:
break
print(b2)
下面这个是运行不成功的报错:
这个问题的核心是index函数,
不用index也可以做。直接用for循环和if条件语句就可以。下面是代码段。
b1=[5,10,5]
num1=5
start=0
b2=[]
for i in range(3):
if b1[i]==num1:
b2.append(i)
print(b2)
# 因为b1.index(num1,start) # 如果num1不在b1[start:]中,就会触发ValueError
# 而加了try catch 就是捕获了这个异常