我正在用Python编写一个调车场程序,遇到了一个数学表达式如“3x+4*y”或“3sin(x)”的问题。在
问题是Python tokenize函数不知道我需要“3x”变成[“3”、“*”x“],而不是仅仅是[“3”,“x”]。当然,我可以规定用户必须输入3*x而不是3x,但这太蹩脚了。应该有一个更干净的方法来解决这个问题。在
以下是我使用的标记化代码(从stackoverflow posting复制):
expression="3x + 4*y"
from io import StringIO
print [token[1] for token in tokenize.generate_tokens (StringIO(expression).readline) if token[1]]
这给了我:
^{pr2}$但我需要:
[u'3', u'*', u'x', u'+', u'4', u'*', u'y']
为了使调车场代码正常工作。在
谢谢你的帮助。在
目前没有回答
相关问题 更多 >
编程相关推荐