鍍金池/ 問答/Python  Android/ 小白請教各位,這個代碼為什么每個print了2次?

小白請教各位,這個代碼為什么每個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)

這是結(jié)果
enter your number
5
16
16
8
8
4
4
2
2
1

回答
編輯回答
淺淺

函數(shù)調(diào)用了兩次

2018年4月10日 14:44
編輯回答
黑與白

因為調(diào)用了兩次函數(shù) collatz, 而 number數(shù)值類型, 函數(shù)中的修改不會影響到函數(shù)外部。

2018年7月31日 08:49
編輯回答
心上人

把這句注釋掉 collatz(number)

2017年10月17日 10:17
編輯回答
兔囡囡

改成:

while number != 1:
    number=collatz(number)
2017年5月21日 05:37