强制程序计算输入

时间:2016-10-17 14:08:08

标签: python python-2.7 input raw-input

我想知道在将其转换为整数之前是否可以强制程序计算输入。 例如我的代码是

    shift=int(raw_input("input the shift you want "))

如果我要输入4 ** 2,那么理论上应该等于16,但是因为原始输入是字符串,所以这不可能发生。 我想知道是否有强制程序计算输入含义如果我输入一个计算然后程序将解决它而不是只是将它转换为整数并导致错误。

1 个答案:

答案 0 :(得分:4)

如果您不介意非常不安全,可以使用eval,它接受​​单个字符串参数作为输入,并将其作为Python代码执行:

shift = eval(raw_input("input the shift you want "))

And here is an explanation of why you shouldn't do this in any kind of production code

更好的选择是实际构建一个适当的解析器,使其像计算器一样运行。有很多资源可以在SO和其他地方上网。