为什么最后会返回一个列表,因为route是空列表,最后返回route不应该是一个空列表吗?
def go(doors, count = 0, route = []):
try:
if doors[count][0] == 1:#假设左边为通行
return [0] + go(doors, count+1) # 继续往下走
else:
return [1] + go(doors, count+1) # 右边通行,继续往下走
except:
return route # 没有新的门,则返回路线
doors = [(1,0),(0,1),(0,1),(1,0),(1,0)]
print(go(doors))
[0, 1, 1, 0, 0]
1 回答
已采纳
一撮学渣
TA贡献5条经验 获得超2个赞
try...except...
是用来处理错误的,如果try语句块内的代码出错,则会直接跳转至except
语句块。
上面的代码,因为try语句块内的代码并没有出错,所以不会返回route,而是返回try内的结果。
如果在try内加上一句明显会报错的代码,如下:
num = 3 / 0
那么返回的就是route,一个空列表。
添加回答
举报
0/150
提交
取消