Heim > Fragen und Antworten > Hauptteil
def foo(a):
if 得到了结果:
结束递归
显示
if 错误:
return
else:
for each in *****:
foo(each)
这是我大概的思路,试过用exit()虽然停了但会报错
PHPz2017-04-17 15:37:28
递归需要出口条件,也就是你说的停止。。
一般情况在递归内部需要一个分支判断,如:
def fab(n):
if n<2:
return 1
else
return fab(n-1)+fab(n-2)
递归一定次数以后达到上面的if条件,递归就结束了。
PHPz2017-04-17 15:37:28
需要有退出条件, 比如检查一段数据中是否有unicode字符
def check_unicode(data):
"""
:param data:
:return:
"""
if isinstance(data, dict):
for k, v in data.iteritems():
if isinstance(v, dict):
if check_unicode(v):
return True
elif isinstance(v, list):
if check_unicode(v): # 检查为True退出
return True
else:
if v and isinstance(v, unicode):
return True
elif isinstance(data, list):
for v in data:
if isinstance(v, dict):
if check_unicode(v):
return True
elif isinstance(v, list):
if check_unicode(v):
return True
else:
if v and isinstance(v, unicode):
return True
else:
if data and isinstance(data, unicode):
return True
return False