【问题标题】: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])

它用空格分割方程并分隔数字和运算符。

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 2011-03-16
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多