快捷导航

关于return返回的疑问

为什么最后会返回一个列表,因为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

try...except...是用来处理错误的,如果try语句块内的代码出错,则会直接跳转至except语句块。
上面的代码,因为try语句块内的代码并没有出错,所以不会返回route,而是返回try内的结果。

如果在try内加上一句明显会报错的代码,如下:
num=3/0那么返回的就是route,一个空列表。
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP