我最近转而使用Python 3,并且通常使用Python 2的常规内容不适用于Python 3.我已经能够解决其余问题,但我正在努力解决这个问题。我无法检查"键入"事情是。
raw = input("Please give me a number, string\
or decimal: ")
if type(raw) == int:
print("You entered a number")
elif type(raw) == float:
print("You entered a decimal")
elif type(raw) == str:
print("You entered a string")
else:
print("error please try again")
`
答案 0 :(得分:5)
在python3.x中,input
始终返回类型为str
的对象。与python2.x等价的是eval(input('...'))
。与在任何时候使用eval
一样,请确保您绝对相信输入不会对您的程序或计算机执行恶意操作...
更好的方式是使用类似ast.literal_eval
的内容(可以安全地评估您的文字)或自己进行检查......
def is_int_str(s):
"""Checks if a string (s) represents a python integer."""
try:
int(s)
except ValueError:
return False
return True
然后写出类似的float
版本......这是微不足道的......