【发布时间】:2016-06-19 19:07:25
【问题描述】:
在 Python 3 中,我编写了一个简单的命令来接受来自用户的整数输入:
x = int(input("Enter a number: "))
如果我跳过int() 部分并简单地使用x = input("Enter a number: "),我输入的数据类型是字符串,而不是整数。我明白了。
但是,如果我使用以下命令:
x = eval(input("Enter a number: "))
输入的数据类型是“int”。
为什么会这样?
【问题讨论】:
-
可能是使用eval()时的动态类型检查?
-
eval将输入视为用代码编写,在代码中执行x = 3会生成一个整数,因此x = eval("3")也会使 x 成为一个整数,但是让用户输入任意代码为他们的输入可能是个大问题,如果他们输入open(__file__,'w').close(),它将删除当前正在执行的文件。
标签: python eval type-conversion