Collatz序列,最后返回值中None应该怎么处理掉

新手上路,请多包涵

新手学习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 :
5
16
8
4
2
1
None

如上返回值中却意外的出现了None,想问这个None是因为代码中的哪个点引起的,以及应该如何去除?
之前尝试过if num == 1:break,或者调用sys.exit()都没法解决

阅读 1.7k
1 个回答

因为你的这句:

print(collatz())

collatz作为函数, 没有返回值的时候默认返回None. 这个None就被print()函数打印出来了.
所以你直接这样就好:

collatz()
推荐问题