下面的代码是我在许多 SO 资深人士的帮助下创建的:
该代码采用输入的数学表达式并将其拆分为运算符和操作数以供以后使用。我创建了两个函数,拆分的解析函数和错误函数。我遇到了错误函数的问题,因为它不会显示我的错误消息,而且我觉得在代码运行时该函数被忽略了。如果输入这样的表达式,则应打印错误:3//3+4 等。其中有两个运算符一起,或者整个表达式中有两个以上的运算符,但错误消息不打印。我的代码如下:
def errors():
numExtrapolation,opExtrapolation=parse(expression)
if (len(numExtrapolation) == 3) and (len(opExtrapolation) !=2):
print("Bad1")
if (len(numExtrapolation) ==2) and (len(opExtrapolation) !=1):
print("Bad2")
def parse(expression):
operators= set("*/+-")
opExtrapolate= []
numExtrapolate= []
buff=[]
for i in expression:
if i in operators:
numExtrapolate.append(''.join(buff))
buff= []
opExtrapolate.append(i)
opExtrapolation=opExtrapolate
else:
buff.append(i)
numExtrapolate.append(''.join(buff))
numExtrapolation=numExtrapolate
#just some debugging print statements
print(numExtrapolation)
print("z:", len(opExtrapolation))
return numExtrapolation, opExtrapolation
errors()
任何帮助,将不胜感激。请不要引入比此处已有代码更高级的新代码。我正在寻找解决我的问题的方法......不是大的新代码段。谢谢。