这个问题似乎有点具体,对此我很抱歉,但这让我很为难。我正在给自己写一个密码生成器,它接受一个字符串(也就是网站的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)
。。。在
^{pr2}$
我希望'nums'输出两次,因为我在else块中打印它,然后再打印返回值。但是,如果它确实经过递归循环,则从else块打印“nums”,并且函数返回“None”。如果if len(nums) < num_length第一次为false,则返回正确的值。在
如果我验证它返回的对象实际上不是前面的行“None”,为什么它会返回“None”?在
我对Python有点陌生,它们处理递归的方式不同吗?在
谢谢你抽出时间
编辑:
问题已修复。在递归调用中忘记了return语句。谢谢:D