0

我的程序需要一个数学输入并在继续之前检查它是否有错误,这是我需要帮助的代码部分:

expression= introduction()#just asks user to input a math expression    
operators= set("*/+-")
numbers= set("0123456789")
for i in expression:
    while i not in numbers and i not in operators:
        print("Please enter valid inputs, please try again.")
        expression= introduction()

现在我已经设置了一个错误循环,但我遇到的问题是我不知道在这种情况下用什么来更新循环。任何人?

我需要一些简单的东西,例如下面答案中的“while True”代码。其余的都太先进了。我需要与此 OP 中发布的代码接近的东西。

4

2 回答 2

3

我会这样做:

valid = operators | numbers
while True:
    expression = introduction()
    if set(expression) - valid:
        print 'not a valid expression, try again'
    else: 
        break

您只想调用introduction()一次 bad expression。你现在这样做的方式是introduction()调用expression.

于 2012-11-07T23:32:36.647 回答
1
expression = introduction()    
operators = {'*', '/', '+', '-'}
while any(not char.isnumeric() and char not in operators for char in expression):
    print("Please enter valid inputs, please try again.")
    expression = introduction()
于 2012-11-07T23:33:38.563 回答