堆递归主计数器python

时间:2018-03-25 13:47:12

标签: python

我需要检查一系列数字,包括它们,我得到了这个代码,但是我得到了一个错误,它必须是递归的。

def esPrimo(a):
  if (a <2):
    return False;
  for i in range(2,a):
    if a%i == 0:
      return False;
  return True;

def calcularCantidadPrimosEnIntervalo(a, b):

    if(a>b):
      return 0;
    else:
      if(esPrimo(a)):
        return calcularCantidadPrimosEnIntervalo(a+1, b) + 1;
      else:
        calcularCantidadPrimosEnIntervalo(a+1, b); 
print("Numeros Primos: " + calcularCantidadPrimosEnIntervalo(1,7));

我得到了这个例外:

  

TypeError:+不支持的操作数类型:'NoneType'和'int'

1 个答案:

答案 0 :(得分:0)

您错过了return语句。因此,有时您的calcularCantidadPrimosEnIntervalo()函数会返回None而不是整数。

这一行:

else:
    calcularCantidadPrimosEnIntervalo(a + 1, b); 

......应该是:

else:
    return calcularCantidadPrimosEnIntervalo(a + 1, b);