首页 > 解决方案 > 用 Python 自动化无聊的东西 - Collat​​z 序列

问题描述

我对任何类型的编码都很陌生,目前使用 python 3.3。我已经成功地在 python 中准确地运行了 Collat​​z 序列,如下所示:

while True: # The main game loop.
number = int(input('Enter number:\n'))  
def collatz(number):
    while number !=1:
        if number % 2==0: #even numbers
            number=number//2
            print(number)
        elif number % 2!=0: #odd numbers
            number=number*3+1
            print(number)
collatz(number)

但是,我不确定如何以及在何处添加 ValueError strong,因为当用户输入非整数时,如下所示:

except ValueError:
    print('Only integers accepted.')

我对python很陌生,所以如果有任何答案可以有一点解释,我会非常感激。谢谢

标签: pythoncollatz

解决方案


我假设您指的是异常处理,验证部分必须在开始时完成。

    while True: # The main game loop.
        
        try:
            number = int(input('Enter number:\n'))
   
        except ValueError:
            print("Only integers accepted! Please try again ...")
        else:
            collatz(number)
#output:
#
#Enter number:
#abc
#Only integers accepted! Please try again ...
#Enter number:
#5
#16
#8
#4
#2
#1
#Enter number:

但是程序会继续循环,需要终止条件。


推荐阅读