我在做书中的练习,我应该写一个程序,可以取一个大于2的正整数,并写出在得到一个小于2的值之前,必须反复将这个数除以2的次数。你知道吗
def inStr():
n = -1
while n<2:
try:
n = int(input('Enter a positive integer greater than 2: '))
except:
pass
print(positive(n)) # prints None
def positive(n, step=0):
if n < 2:
# print(step) #it prints correct answer
return step #but why it returns None?
positive(n//2, step+1)
inStr()
我不明白为什么def positive(n, step=0)
返回None
?你知道吗
似乎您忘记在
positive(n//2, step+1)
之前添加return
。所以函数positive
有时不返回任何内容(即None
)。你知道吗试试这个:
因为你不让它归还任何东西。你需要把
return
放进去:有时函数会调用自身,但不希望返回结果。您需要告诉Python,这次您想这样做。因为您没有告诉Python返回什么,所以它默认返回
None
。你知道吗相关问题 更多 >
编程相关推荐