【问题标题】:How to convert '1+2' into an int in python [duplicate]如何在python中将'1 + 2'转换为int [重复]
【发布时间】:2016-12-07 11:15:22
【问题描述】:

例如,如果我有:

x = '12'
print(int(x))

会将x 转换为字符串中的整数。

如果我有怎么办:

x = '1+2'

我想要 3 作为我的输出,因为 + 不能直接转换为 int,我该怎么做?

【问题讨论】:

  • eval(x) 将给出 3。您甚至尝试过先搜索吗?

标签: python string integer int


【解决方案1】:

使用literal_eval,它比使用eval 更安全。 literal_eval 安全地计算表达式节点或包含 python 表达式的字符串。

import ast
x = ast.literal_eval('1+2')

【讨论】:

    【解决方案2】:

    您可以使用 eval 函数来完成此操作;但是,应该注意的是,允许对 eval 函数进行未经处理的输入可能会带来重大的安全风险。这是一个例子:

    x = '1 + 2'
    print(eval(x))
    

    【讨论】:

      【解决方案3】:

      在这里你可以使用eval
      用法是eval(expression[, globals[, locals]])
      所以 eval('1+2') 3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-29
        • 2012-02-05
        • 2015-10-09
        • 1970-01-01
        • 2017-07-17
        • 1970-01-01
        • 2019-11-09
        • 2016-05-21
        相关资源
        最近更新 更多