我想用python制作一种简单的电子表格。
我需要从字符串中解析一个公式。
我现在需要的所有操作都是:+ - * / ^()
公式将始终以'='开头。
输入示例:
=4+8-6/2
这很简单:只需使用eig() 2。=4b+12*(2+5)
其中'4b'是电子表格中另一个单元格的链接(变量)。
**可以将所有链接设为'b4'而不是'4b'
该脚本将链接(变量)替换为相应的值。
我无法实现的是让解析器'理解'变量如'4b'或'b4',其余的很简单
你会建议什么?
P.S。我是Python的新手。试过pyparsing但是根据我的需要使用或修改自定义示例很复杂。希望找到更简单的解决方案
答案 0 :(得分:1)
class SpreadSheet
是根据几个内部词典以及极少数相对较短的方法来定义的。
相关评论也非常有趣,并展示了如何扩展和尽量减少潜在的安全问题。我强烈建议你看一下。
我注意到的一个主要限制是没有依赖性检查,因此更新单元格不会自动更新可能依赖于它的任何内容,以及任何可能依赖于它们的内容等。
答案 1 :(得分:0)
用于创建匿名函数的Lambda表达式将是处理此问题的有效方法。我建议查看一下Peter Norvig的Udacity课程 - 计算机程序的设计。作为第2课的一部分,他介绍了一个非常类似于看密码学的场景。该课程是免费的,并且是自定进度的,因此您可以根据需要随意学习课程/课程: