Python中的递归性返回none,这是另一种方法

Python中的递归性返回none,这是另一种方法,python,recursion,return-type,Python,Recursion,Return Type,我正在启动python,我对python中的返回有一点问题。 因此,Lc的最终值,我的结果列表在递归函数cpRec中是正确的,但是 当它返回它时,我在函数cp2中没有得到任何结果。我可以使用Lc的全局值,问题解决了,但它很难看。。。那么还有其他方法吗 def cpRec(L, Lc, chiffre,cpt): if len(L) == 0: Lc += [cpt] #print Lc <- if I print here, the result is good.

我正在启动python,我对python中的返回有一点问题。 因此,Lc的最终值,我的结果列表在递归函数cpRec中是正确的,但是 当它返回它时,我在函数cp2中没有得到任何结果。我可以使用Lc的全局值,问题解决了,但它很难看。。。那么还有其他方法吗

def cpRec(L, Lc, chiffre,cpt):
  if len(L) == 0:
    Lc += [cpt]
    #print Lc <- if I print here, the result is good.
    return Lc
  else:
    first = L.pop(0)
    if first == chiffre:
        cpRec(L, Lc, chiffre, cpt+ 1)
    else:
        Lc += [cpt]
        cpRec(L, Lc, first, 1)

def cp2(L):
  Lc =[L[0]]
  return cpRec(L,Lc, L[0], 0)

print(cp2([0,1,1,1,0,0,1,1,1])) #<- print None instead of Lc

在对
cpRec
的递归调用之前放置
return

在对
cpRec
的递归调用之前放置
return

尝试将“return”语句添加到这两个递归
cpRec
调用中:

def cpRec(L, Lc, chiffre,cpt):
  if len(L) == 0:
    Lc += [cpt]
    #print Lc <- if I print here, the result is good.
    return Lc
  else:
    first = L.pop(0)
    if first == chiffre:
        return cpRec(L, Lc, chiffre, cpt+ 1)
    else:
        Lc += [cpt]
        return cpRec(L, Lc, first, 1)
def cpRec(L、Lc、chiffre、cpt):
如果len(L)==0:
Lc+=[cpt]

#打印Lc尝试将“return”语句添加到这两个递归调用中:

def cpRec(L, Lc, chiffre,cpt):
  if len(L) == 0:
    Lc += [cpt]
    #print Lc <- if I print here, the result is good.
    return Lc
  else:
    first = L.pop(0)
    if first == chiffre:
        return cpRec(L, Lc, chiffre, cpt+ 1)
    else:
        Lc += [cpt]
        return cpRec(L, Lc, first, 1)
def cpRec(L、Lc、chiffre、cpt):
如果len(L)==0:
Lc+=[cpt]
#打印信用证的可能副本