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