新手学习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
提交
取消