我是编码的新手,并一直在跟踪使用Python自动化无聊的东西。最新的项目正在写一个Collatz序列,这是相当直接的。但是,我一直无法弄清楚如何通过try和except添加输入验证。
由于try和except必须在循环内,因此错误发生在输入阶段 - int(input())之前。但是,如果我在while循环中添加输入,它会在每个循环后请求我输入新的输入。
是否有一种添加for和except的简单方法,以便在输入无效时显示错误消息并等待新输入?提前谢谢。
print('Hello, please input an integer.')
number = int(input())
while number != 1:
if number % 2 == 0:
print(number // 2)
number = number // 2
elif number % 2 == 1:
print(3 * number + 1)
number = 3 * number + 1
答案 0 :(得分:0)
您可以创建一个单独的函数来处理整数输入以及验证,并在此处多次调用它:
def accept_int():
while True:
try:
num=int(input())
break
except:
print("An error occured, please re-enter!")
continue
return num
print('Hello, please input an integer.')
number = accept_int()
while number != 1:
if number % 2 == 0:
print(number // 2)
number = number // 2
elif number % 2 == 1:
print(3 * number + 1)
number = 3 * number + 1
输出:
$ python3 d.py
Hello, please input an integer.
abcd
An error occured, please re-enter!
23.5
An error occured, please re-enter!
32
16
8
4
2
1
$