强制程序计算输入

forcing a program to calculate an input

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

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

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

如果您不介意非常不安全,可以使用 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 和在线其他地方有大量资源可供使用。