猿问

小白请教各位,这个代码为什么每个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

慕森王
浏览 572回答 4
4回答

心有法竹

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

沧海一幻觉

把这句注释掉 collatz(number)

慕尼黑的夜晚无繁华

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

ITMISS

函数调用了两次
随时随地看视频慕课网APP

相关分类

Python
我要回答