最近在学习python,书中有一个实践项目,关于Collatz猜想。分享我的代码
def collatz(number): # Collatz猜想
if number % 2 == 0: #若为偶数,则整除2
number //= 2
print(number)
return number
else: #若为奇数,则乘3加1
number *= 3
number += 1
print(number)
return number
print('Enter number: ')
while True:
try: # 在输入中捕捉错误
num = int(input())
if num < 1: #判断输入的是否为正整数
print('You must enter a positive integer number!')
continue
break #若捕捉到错误,会直接执行except子句,不会break; 而当输入正确时,则会跳出循环
except ValueError: #若输入不是整数字符串,会返回ValueError错误
print('You must enter a integer number!')
while num != 1:
num = collatz(num) #不断调用collatz(),最终肯定会返回1
```