在python中解析表达式的算法?

我有下一个用于解析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如何分隔它?在第一次迭代中,运算符是“ +-”吗?


任何帮助都将非常重要。谢谢


森栏
浏览 197回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python