在Python 3中,我编写了一个简单的命令来接受用户输入的整数,如下所示:
如果我跳过
然而,如果我使用以下命令:
x = int(input("Enter a number: "))
如果我跳过
int()
部分,仅使用x = input("请输入一个数字:")
,那么我的输入数据类型是字符串,而不是整数。我理解这一点。然而,如果我使用以下命令:
x = eval(input("Enter a number: "))
输入的数据类型是“int”。
为什么会发生这种情况?
eval
将输入视为代码执行,比如在代码中写x = 3
,会创建一个整数对象,因此x = eval("3")
同样会创建一个整数对象,然而允许用户以任意代码作为输入可能会带来巨大的问题,如果用户输入了open(__file__,'w').close()
,它会删除当前正在执行的文件。 - Tadhg McDonald-Jensen