如何使用if for python3

时间:2016-07-26 02:07:36

标签: python python-3.4

我最近转而使用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")

`

1 个答案:

答案 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版本......这是微不足道的......