猿问

关于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]

MADAO7
浏览 843回答 1
1回答

一撮学渣

try...except...是用来处理错误的,如果try语句块内的代码出错,则会直接跳转至except语句块。上面的代码,因为try语句块内的代码并没有出错,所以不会返回route,而是返回try内的结果。如果在try内加上一句明显会报错的代码,如下:num = 3 / 0那么返回的就是route,一个空列表。
随时随地看视频慕课网APP

相关分类

Python
我要回答