如果条件检查变量类型(int,float,ect)

时间:2015-02-09 05:52:07

标签: python if-statement python-3.x

Python3:我想知道我是否可以像通常那样设置一个if语句来执行一些代码。

但是我希望声明能像这样:(psudo-code)

If variable1 !== "variable type integer":
    then break. 

这可能吗?谢谢您的帮助。

如果已经解决这个问题我很抱歉,但搜索建议机器人没有任何帖子指出我。

Jesse,NOOb

2 个答案:

答案 0 :(得分:2)

通常使用isinstance会更好,所以你也接受像鸭子一样嘎嘎叫的变量:

>>> isinstance(3.14, int)
False
>>> isinstance(4, int)
True
>>> class foo(int):
...     def bar(self):
...         pass
... 
>>> f = foo()
>>> isinstance(f, int)
True

答案 1 :(得分:0)

您可以导入类型并检查变量:

>>> from types import *

>>> answer = 42

>>> pi = 3.14159

>>> type(answer) is int # IntType for Python2
True

>>> type(pi) is int
False

>>> type(pi) is float # FloatType for Python 2
True

对于更具体的案例,您可以使用以下内容:

if type(variable1) is int:
    print "It's an int"
else:
    print "It isn't"

请记住,这是针对已经存在为正确类型的变量。

如果您在评论中指出(if user_input !== "input that is numeric"),您的意图是尝试弄清楚用户输入的内容对于给定类型是否有效,您应该尝试不同的方式,以下几行:

xstr = "123.4"             # would use input() usually.
try:
    int(xstr)              # or float(xstr)
except ValueError:
    print ('not int')      # or 'not float'