在python 3.7中计算数学字符串
我正在寻找一个专门用于python 3.7的函数。我有一个字符串中的数学表达式:在python 3.7中计算数学字符串,python,math,expression,formula,python-3.7,Python,Math,Expression,Formula,Python 3.7,我正在寻找一个专门用于python 3.7的函数。我有一个字符串中的数学表达式: str="2^10" #Expected output: 1024 Python3.7中是否有内置函数对其进行评估 附言:eval()函数不起作用。Python中幂运算的符号是**,而不是^。所以,首先改变你的字符串 str_ ="2^10" print(eval(str_.replace('^', '**'))) # -> 1024 请注意,eval是一种潜在的非常危险的功能。不要盲目使用。
str="2^10" #Expected output: 1024
Python3.7中是否有内置函数对其进行评估
附言:eval()函数不起作用。Python中幂运算的符号是
**
,而不是^
。所以,首先改变你的字符串
str_ ="2^10"
print(eval(str_.replace('^', '**'))) # -> 1024
请注意,eval
是一种潜在的非常危险的功能。不要盲目使用。
更安全的方法是使用(非标准)模块
numexpr
import numexpr
print(numexpr.evaluate(str_.replace('^', '**'))) # -> 1024
还请注意,如果不将
“^”
替换为“**”
,则会导致8
。这是因为Python中的幂运算符号是**
,而不是^
。所以,首先改变你的字符串
str_ ="2^10"
print(eval(str_.replace('^', '**'))) # -> 1024
请注意,eval
是一种潜在的非常危险的功能。不要盲目使用。
更安全的方法是使用(非标准)模块
numexpr
import numexpr
print(numexpr.evaluate(str_.replace('^', '**'))) # -> 1024
还请注意,如果不将“^”
替换为“**”
,则会导致8
。之所以会这样,是因为在Python中,^
是我很确定它是有效的。然而,您可能正在寻找str=“2**10”
我很确定它是有效的。但是,您可能正在寻找str=“2**10”