新手學習Python,章節作業中需要編寫Collatz序列,然后自己編寫這樣的代碼這是關于Collatz序列的代碼練習print('Enter number :')def Collatz():try: num = int(input()) while num !=1 : if num %2 == 0: num = num // 2
print(num)
elif num %2 == 1: num = 3*num+1
print(num)
except ValueError: print('Error! Please Enter number')print(Collatz())Enter number :5168421None如上返回值中卻意外的出現了None,想問這個None是因為代碼中的哪個點引起的,以及應該如何去除?之前嘗試過if num == 1:break,或者調用sys.exit()都沒法解決
1 回答

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
因為你的這句:
print(collatz())
collatz
作為函數, 沒有返回值的時候默認返回None
. 這個None
就被print()
函數打印出來了.
所以你直接這樣就好:
collatz()
添加回答
舉報
0/150
提交
取消