我正在尝试在Python中运行collatz,但在考虑不是整数的输入时遇到了麻烦。我希望在考虑用户非整数输入的代码中进行“尝试并除外”工作。请在下面查看我的代码。
number = int(input("Please enter a number: "))
def collatz(number):
if number % 2 == 0:
print(number // 2)
return number // 2
elif number % 2 == 1:
print(number * 3 + 1)
return number * 3 + 1
while number != 1:
try:
number = collatz(int(number))
except ValueError:
print("Something went wrong, please try again...")
最佳答案
除了在输入上调用int以外,您没有使用try,这就是为什么它仍然会出错。您应该使用2个while循环,如下所示:
number = input("Please enter a number: ")
while not number.isdigit():
number = input("Please enter a number again: ")
number = int(number)
def collatz(number):
if number % 2 == 0:
print(number // 2)
return number // 2
elif number % 2 == 1:
print(number * 3 + 1)
return number * 3 + 1
使用try-except(在这种情况下,不要在其他解决方案中包括初始内容):
while True:
try:
number = int(input("Please enter a number: "))
break
except:
pass
关于python - 如何在Python中使用“尝试和异常”引发打印消息错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59924513/