Python 递归递增计数
您好,我正在尝试学习Python上的基本递归函数,我正在做一些练习。我正在尝试使用递归生成一个函数,该函数返回数字之间的增量小于k的数字,但我找到了正确的方法,但增加计数是个问题。到目前为止,这是我的代码Python 递归递增计数,python,recursion,Python,Recursion,您好,我正在尝试学习Python上的基本递归函数,我正在做一些练习。我正在尝试使用递归生成一个函数,该函数返回数字之间的增量小于k的数字,但我找到了正确的方法,但增加计数是个问题。到目前为止,这是我的代码 testList = [(1), (6), (7), (9), (14)] def count_test(loc_list, k): counts = 0 if len(loc_list) == 1: return print(counts) else:
testList = [(1), (6), (7), (9), (14)]
def count_test(loc_list, k):
counts = 0
if len(loc_list) == 1:
return print(counts)
else:
if loc_list[1] - loc_list[0] < k:
counts += 1
del loc_list[0]
count_test(loc_list,k)
else:
del loc_list[0]
count_test(loc_list, k)
testList=[(1)、(6)、(7)、(9)、(14)]
def计数测试(loc_列表,k):
计数=0
如果len(loc_list)==1:
返回打印(计数)
其他:
如果loc_列表[1]-loc_列表[0]
count\u测试(testList,3)
我想得到2,它在6和7之间,7和9之间,但是计数没有增加,我想问题是我把“计数=0”
我知道这个问题很愚蠢,但我找不到解决办法。
请帮助我是的,你是对的,问题是因为每个
函数
都创建了自己的计数
变量
设置为0
。您需要在函数之间传递此值。要做到这一点,我们可以使用一个全局
(坏主意),或者只是将其作为另一个参数传入。如果在函数
定义中使用counts=0的语法
,那么从根节点调用它时,我们不需要指定以0
counts
开始
哦,还有,Python
不支持在其他一些语言中看到的++
语法,您必须使用counts+=1
def count_test(loc_list, k, counts=0):
if len(loc_list) == 1:
return print(counts)
else:
if loc_list[1] - loc_list[0] < k:
counts += 1
del loc_list[0]
count_test(loc_list,k,counts)
else:
del loc_list[0]
count_test(loc_list, k,counts)
给出:
2
是的,您是对的,问题是因为每个函数
都会创建自己的计数
变量
设置为0
。您需要在函数之间传递此值。要做到这一点,我们可以使用一个全局
(坏主意),或者只是将其作为另一个参数传入。如果在函数
定义中使用counts=0的语法
,那么从根节点调用它时,我们不需要指定以0
counts
开始
哦,还有,Python
不支持在其他一些语言中看到的++
语法,您必须使用counts+=1
def count_test(loc_list, k, counts=0):
if len(loc_list) == 1:
return print(counts)
else:
if loc_list[1] - loc_list[0] < k:
counts += 1
del loc_list[0]
count_test(loc_list,k,counts)
else:
del loc_list[0]
count_test(loc_list, k,counts)
给出:
2
Python不像c和其他语言那样包含++函数,您必须使用另一种方法
counts += 1 #Will add one every time
或
Python不像c和其他语言那样包含++函数,您必须使用另一种方法
counts += 1 #Will add one every time
或
++counts
..…Python不像其他一些语言那样有++
操作符。使用counts+=1
代替请解释您希望函数做更多的工作precisesly@JoeIddon嗨,我想得到元素和元素之间的差异小于k的列表数。所以我有一个列表,我想一个接一个地计算和前一个的差异。我想检查一下这些计算是否小于k。对于这个输出,我想得到2,因为6,7和7,9之间的差异小于3++counts
…Python不像其他语言那样有++
操作符。使用counts+=1
代替请解释您希望函数做更多的工作precisesly@JoeIddon嗨,我想得到元素和元素之间的差异小于k的列表数。所以我有一个列表,我想一个接一个地计算和前一个的差异。我想检查一下这些计算是否小于k。对于这个输出,我想得到2,因为在得到0之前,6,7和7,9之间的差值小于3。我想这是因为我把counts=0,但我想不出我可以在函数中放入counts,但不在每次递归时调用“counts=0”。使用global counts=0
还有其他方法吗?我可以在递归函数中引用它吗?我仍然得到0。我想这是因为我把counts=0,但我想不出我可以在函数中放入counts,但不在每次递归时调用“counts=0”。使用global counts=0
还有其他方法吗?我可以在递归函数中创建一个实例吗?