如何以整数和字符串作为输入执行算术运算

时间:2018-05-08 15:42:52

标签: python python-2.7 input

我从函数和" + 10"等操作中获取整数输入。来自用户并在计算后打印结果。到目前为止我有这个

def Eval(arg1, arg2):

    if (arg1 >= 100):
        arg1 == 100
    else:
        arg1 = eval((arg1)(arg2))
        print arg1
Eval(10,'+10')

但我有TypeError: 'int' object is not callable error。有人能告诉我我做错了吗?

2 个答案:

答案 0 :(得分:1)

您可以使用ast.literal_eval。出于安全考虑,建议使用此代替eval

from ast import literal_eval

def Eval(arg1, arg2):

    if (arg1 >= 100):
        arg1 == 100

    return literal_eval(str(arg1)+arg2)

x = raw_input('Append string to variable for calculation:\n')  # '+10'
res = Eval(10, x)

print res  # 20

答案 1 :(得分:0)

问题来自尝试通过eval intstr时只接受str。在将arg1转换为str之后,您可以通过组合arg1和arg2来解决此问题。

arg1 = 10
arg2 = '+1'
evalInput = str(arg1) + arg2
eval(evalInput)
>> 11

通过使用字符串格式化可以使这更清晰,但这应该给你一个大致的想法。