这个代码很low,但是return的好奇怪,如果不加return上面那个print就会无限循环,实在是看不明白!?求解答
def collatz(number):
if number % 2 == 0:
a = number // 2
print(a)
else:
a = 3 * number + 1
print(a)
while a != 1:
collatz(a)
print(a)#如果不加这个print就会无限循环,为什么
return a
print(collatz(4))
产生无线循环的根本原因是第一次执行后a=2,while进入死循环,你可以试着改为,这时候会一直打印a的值2
这是我对你的代码改了一些,加了一些注释,你看一下