a=0
def test():
global a
a=a+1
if a==10:
return 12333
else:
print(a)
test()
print(test())
以上是我的代码。 enter image description here
答案 0 :(得分:1)
之所以当前不起作用,是因为当前没有任何内容返回到原始打印对帐单。
您的print(test())
调用将使a递增print(a)
,然后再次调用自身,这是您获得递归的结果,但是原始函数调用没有返回任何内容。
只需在函数内的函数调用中添加return即可解决此问题,
a=0
def test():
global a
a=a+1
if a==10:
return 12333
else:
print(a)
return test()
print(test())
与Java相比,这是Python的简单语言不足之处,因为它不会告诉您某些错误,而Java和其他语言会告诉您缺少return语句。
答案 1 :(得分:0)
您应该使函数test
也返回递归调用的返回值;否则它将隐式返回None
,而无需显式的return
语句。
更改:
test()
收件人:
return test()