小白请教各位,这个代码为什么每个print了2次?

以下是代码

def collatz(number):
    if number%2==0:
        number=number//2
        print(str(number))
        return number
    else:
        number=number*3+1
        print(str(number))
        return number
print('enter your number')
number=int(input())
while number!=1:
    collatz(number)
    number=collatz(number)

这是结果
enter your number
5
16
16
8
8
4
4
2
2
1

阅读 2.6k
4 个回答

改成:

while number != 1:
    number=collatz(number)

把这句注释掉 collatz(number)

因为调用了两次函数 collatz, 而 number数值类型, 函数中的修改不会影响到函数外部。

函数调用了两次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题