这是我的代码
def collatz(number):
while number != 1:
if number % 2 == 0:
print (number // 2)
number = number // 2
elif number % 2 == 1:
print (number *3 +1)
number = number *3 + 1
print( 'Enter number:' )
try:
number = int(input())
collatz(number)
except ValueError:
print( 'Enter a integer')
我的问题是,如何不断要求用户“输入一个整数”才能运行collate()。
就像在
except ValueError
整数的输入不运行collate(number)。字符串的输入也不会导致'except ValueError‘。
发布于 2017-09-10 14:13:34
我不是python方面的专家,但是您可以尝试下面这样的方法,也可以添加对0
的检查作为输入。如果你输入0,程序将进入无限循环。
def collatz(number):
while number != 1:
if number % 2 == 0:
print (number // 2)
number = number // 2
elif number % 2 == 1:
print (number *3 +1)
number = number *3 + 1
def getInput():
try:
number = int(input())
collatz(number)
except ValueError:
getInput()
print( 'Enter number:' )
getInput()
https://stackoverflow.com/questions/46137731
复制相似问题