【问题标题】:Converting math equation inside a string into an int [duplicate]将字符串内的数学方程转换为int [重复]
【发布时间】:2021-05-16 23:29:51
【问题描述】:
我想将'246 + 34' 等字符串转换为246 + 34 等整数。我怎样才能做到这一点?我的目标是打印字符串中等式的总和。
我试过int('246 + 34'),但我得到了错误
ValueError: int() 以 10 为底的无效文字:'246+34'
【问题讨论】:
-
我很确定可行的一种方法是将字符串解析为符号表达式并通过 Sympy (sympy.org) 对其进行评估。可能还有其他方法可以做到这一点。
标签:
python
math
type-conversion
【解决方案1】:
我知道的两个选项将使用 eval(equation) 或
string = '246 + 34'.split()
equation = None
if string[1] == '+': equation = int(string[0]) + int(string[2])
if string[1] == '-': equation = int(string[0]) - int(string[2])
if string[1] == '/': equation = int(string[0]) / int(string[2])
if string[1] == '*': equation = int(string[0]) * int(string[2])
它用空格分割方程并分隔数字和运算符。