我可以将错误用作Python中if..else语句的条件吗?如果有,怎么样?

时间:2014-12-23 07:02:59

标签: python

我计划的是当用户输入导致错误的东西时(在我的代码中,是eval()将导致输入中的错误),它会循环返回。

while True:
  x = input('Enter price: ')
  y = eval(x)
  if y == #error condition
    print('Error! Please try again.')
    continue
  else:
    print(y)
    break

输出应为:

Enter price: +
Error! Please try again.
Enter price: 1+
Error! Please try again.
Enter price: 1+1
2

有可能吗?我正在使用Python 3.4 btw。

1 个答案:

答案 0 :(得分:2)

您可以使用try ... except构造。它将捕获异常:

while True:
    x = input('Enter price: ')
    try:
        y = eval(x)
    except Exception:
        print('Error! Please try again.')
        continue

    print(y)
    break