a=0
def r(x):
global a
if len(str(x))==1:
print(a)
b=int(a)
a=0
return b
else:
a+=1
print(a)
r(reduce(lambda z, y: int(z)*int(y), list(str(x))))
def persistence(n):
if len(str(n))==1:
return 0
else:
return r(n)
(这是对codewars.com的挑战)
为什么类型(r(n))== NoneType? 变量b是一个整数,为什么不是函数整数的类型呢?
答案 0 :(得分:1)
我相信你的问题是你没有从else案例中的函数返回值。所以你应该添加return关键字,如下所示:
a=0
def r(x):
global a
if len(str(x))==1:
print(a)
b=int(a)
a=0
return b
else:
a+=1
print(a)
return r(reduce(lambda z, y: int(z)*int(y), list(str(x))))
def persistence(n):
if len(str(n))==1:
return 0
else:
return r(n)