Python 递归递增计数

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:

您好,我正在尝试学习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:
        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
还有其他方法吗?我可以在递归函数中创建一个实例吗?