【问题标题】:Evaluate mathematical strings in python 3.7 [duplicate]在python 3.7中评估数学字符串[重复]
【发布时间】:2019-04-11 20:11:11
【问题描述】:

我正在寻找专门用于 python 3.7 的函数。我在字符串中有一个数学表达式:

str="2^10"   #Expected output: 1024

python 3.7 中是否有任何内置函数来评估它?

P.S: eval() 函数不起作用。

【问题讨论】:

标签: python math expression formula python-3.7


【解决方案1】:

Python 中幂运算的符号是**,而不是^。所以,先改变你的字符串。

str_ ="2^10"

print(eval(str_.replace('^', '**')))  # -> 1024

请注意,eval 是一个潜在的非常危险的函数。不要盲目使用。


更安全的方法是使用(非标准)模块numexpr

import numexpr

print(numexpr.evaluate(str_.replace('^', '**')))  # -> 1024

另请注意,不将"^" 替换为"**" 将导致8。这是因为在 Python 中 ^binary XOR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2012-09-16
    • 2012-07-25
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多