我有下一个用于解析Python中表达式的算法:def parse(strinput): for operator in ["+-", "*/"]: depth = 0 for p in range(len(strinput) - 1, -1, -1): if strinput[p] == ')': depth += 1 elif strinput[p] == '(': depth -= 1 elif depth==0 and strinput[p] in operator: # strinput is a compound expression return (strinput[p], parse(strinput[:p]), parse(strinput[p+1:])) strinput = strinput.strip() if strinput[0] == '(': # strinput is a parenthesized expression? return parse(strinput[1:-1]) # strinput is an atom! return strinput(可以在这里找到:http : //news.ycombinator.com/item?id=284842)我很难理解它,因为我发现Python文档在这种情况下不是很有帮助。有人可以告诉我:这for operator in ["+-", "*/"]:是什么意思?我知道它的结构就像每个字符串变量一样,这是这2个元素的数组中的运算符,但是为什么它写成这样的[“ +-,* /”]?Python如何分隔它?在第一次迭代中,运算符是“ +-”吗?任何帮助都将非常重要。谢谢
添加回答
举报
0/150
提交
取消