【发布时间】:2015-10-23 19:42:58
【问题描述】:
我正在使用异常处理进行输入验证,我的代码可以工作,但它会打印两次错误消息,我无法弄清楚如何使验证循环只打印其中一个错误消息而不是两者。
这是我的代码:
def main():
low = 0
high = 10
get_num_in_range(low,high)
def get_num_in_range (low,high):
prompt = 'Enter a number between: ' + str(low) + ' and ' + str(high) + ': '
answer = low-1 #just get me in to loop
while answer < low or answer > high:
try:
answer = int(input(prompt))
except ValueError:
print('Invalid data type!')
if answer < low or answer > high:
print('Invalid!')
return answer
main()
输出如下所示:
输入一个介于 0 到 10 之间的数字:a
无效的数据类型!
无效!
输入一个介于 0 到 10 之间的数字:
如何让循环只打印相关的错误信息?
编辑:解决了哈!我是个白痴,我在异常处理程序之外进行了“if”验证。 固定代码:
while answer < low or answer > high:
try:
answer = int(input(prompt))
if answer < low or answer > high:
print('Invalid!')
except ValueError:
print('Invalid data type!')
return answer
【问题讨论】:
标签: python validation python-3.x exception-handling