为什么输入函数总是返回一个字符串?

时间:2018-08-22 16:37:50

标签: python

如果我有这么简单的代码

varry = 1
print(type(varry))

它给了我-class 'int'

但是,如果我有这个:

varry = input()
print(type(varry))

我输入1,它会给我class 'str'

请告诉我-为什么会这样,我应该如何编写程序以定义正确输入为int,str或float的变量?

3 个答案:

答案 0 :(得分:3)

您输入到程序的总是 类型str。如果您想让Python推断输入本身的类型,请使用data = eval(input())或出于安全起见:

import ast 
data = ast.literal_eval(input())

答案 1 :(得分:3)

内置函数input始终返回一个字符串,无论该字符串是否可能仅由数字字符组成。如果您确定结果可以代表数字,则将其转换:

varry = int(input())

现在,假设此转换不会引发varry,则int的类型将为ValueError

答案 2 :(得分:0)

varry = int(input())

print(type(varry))

您必须使用int()方法将其转换为int