【问题标题】:Python, exclusive exponentiation from a string inputPython,来自字符串输入的独占幂
【发布时间】:2018-03-15 09:46:13
【问题描述】:

在 python 3 中工作时,我创建了一个计算器,它接受字符串输入,例如“-28 + 4.0/3 * 5”和其他类似的数学方程。作为一个练习,我想通过使用'^'键来支持求幂,这样像“5.23 * 2^4/3^2 -1.0”这样的输入或其他包含一定幂的值的方程就会起作用。但是,事实证明,用我当前的代码实现很困难。不想放弃我的工作,我意识到如果我能找到一种方法来获取原始字符串并有选择地解决 '^' 操作,例如上述“5.23 * 2^4/3^2”这样的输入,我就可以实现这一点-1.0" 将变为 "5.23 * 16/9 -1.0",然后我可以将其输入到之前编写的代码中。唯一的问题是,我在分离这些方程式时遇到了一些麻烦,希望有人能伸出援手。

【问题讨论】:

    标签: python string python-3.x exponentiation


    【解决方案1】:

    作为二进制和中缀运算符,您可以将字符串拆分为符号(数字、运算符),为运算符分配优先级,然后将其重新排列到(类似前缀符号的)堆栈中。

    或者将输入字符串分割成以指数标记分隔的部分,然后可以对相邻子字符串末尾的每个数字进行剪切、评估和替换:"6 * 4^3 +2" -> ["6 * 4", "3 + 2"] -> "6 *" + x + "+ 2"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多