如果我有这么简单的代码
varry = 1
print(type(varry))
它给了我-class 'int'
但是,如果我有这个:
varry = input()
print(type(varry))
我输入1,它会给我class 'str'
请告诉我-为什么会这样,我应该如何编写程序以定义正确输入为int,str或float的变量?
答案 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