在寻找令牌时,我需要计算在树上访问过的节点数量(在本例中为1)。到目前为止,我想出的是:
def search_recursive(node,rounds=0):
if len(node)==2:
if node[1]==1:
print rounds
else:
rounds += 1
huff_search_recursive(node[1],rounds)
huff_search_recursive(node[2],rounds)但是,如果我试图将回合分配给以下任何内容:
def search_recursive(node,rounds=0):
if len(node)==2:
if node[1]==1:
return rounds
else:
rounds += 1
huff_search_recursive(node[1],rounds)
huff_search_recursive(node[2],rounds)Python不为任何变量分配任何变量。例如。
rounds = search_recursive(node)节点的一个例子是:
node = (1.0, (0.5, 0), (0.5, (0.25, 0), (0.25, (0.125, 1), (0.125, 0))))有谁能向我解释一下是什么导致了这个错误,以及我将来如何测试它呢?
发布于 2013-10-21 15:56:45
在每个函数调用中,rounds是一个不同的变量。更改它不会改变外部函数调用的rounds变量。您需要返回值并使用返回的值。
def search_recursive(node):
rounds = 0
if len(node)==2:
if node[1]==1:
return rounds
else:
rounds += 1
rounds += search_recursive(node[1])
rounds += search_recursive(node[2])
return roundshttps://stackoverflow.com/questions/19498751
复制相似问题