Python 递归过程中变量的使用?
因此,我试图解决一个问题,这个问题涉及到寻找元组的最大深度(例如,深度(('a',('b','c','d'),('e','f','g'))应该返回2,深度('a',('b',),('c',('d',('e',),('g','h','I'))应该返回4。 我试图使用递归来解决这样一个问题:我使用一个计数器“c”来跟踪每个元组(在主元组内)的深度。问题是,我得到了以下错误,赋值前引用的局部变量“s” 我的代码类似于:Python 递归过程中变量的使用?,python,variables,recursion,scope,Python,Variables,Recursion,Scope,因此,我试图解决一个问题,这个问题涉及到寻找元组的最大深度(例如,深度(('a',('b','c','d'),('e','f','g'))应该返回2,深度('a',('b',),('c',('d',('e',),('g','h','I'))应该返回4。 我试图使用递归来解决这样一个问题:我使用一个计数器“c”来跟踪每个元组(在主元组内)的深度。问题是,我得到了以下错误,赋值前引用的局部变量“s” 我的代码类似于: s=0 def depth(tuple): do something
s=0
def depth(tuple):
do something
s=s+1
depth(some_nested_tuple)
return
我做错了什么?如果您想在函数中使用
全局
变量,您必须这样做:
s=0
def depth(tuple):
# do something
global s
s=s+1
return depth(some_nested_tuple)