【发布时间】:2016-08-10 20:21:02
【问题描述】:
这个问题似乎有点具体,对此我很抱歉,但这让我很困惑。我正在为自己编写一个密码生成器,它接受一个字符串(也就是网站的 URL)并将其处理成一个安全密码,该密码不能根据网站名称回溯。
在部分代码中,我创建了一个递归函数,如下所示:
def get_number(n = 0, nums = ''):
for i in range(0, len(url)):
#both n and nums are changed
if len(nums) < num_length:
get_number(n, nums)
else:
print(nums)
return(nums)
...
print(get_number())
我希望'nums' 输出两次,因为我在 else 块中打印它并稍后打印返回。但是,如果它确实通过了递归循环,则从 else 块打印“nums”,并且该函数返回“None”。如果if len(nums) < num_length 第一次为假,则返回正确的值。
如果我验证它返回的对象实际上不是之前的行“None”,为什么它会返回“None”?
我对 Python 有点陌生,他们处理递归的方式不同吗?
感谢您的宝贵时间
编辑:
问题已解决。忘记了递归调用的返回语句。谢谢:D
【问题讨论】:
标签: python function recursion return