If conditional that checks on variable type (int, float, ect)
python3:我想知道是否可以像通常那样设置if语句来执行一些代码。
但我想让语句变成这样:(psudo代码)
1 2 | If variable1 !=="variable type integer": then break. |
这有可能吗?谢谢你的帮助。
我很抱歉,如果这已经被解决,但搜索建议机器人没有任何帖子指向我。
杰西
通常,最好使用
1 2 3 4 5 6 7 8 9 10 11 | >>> isinstance(3.14, int) False >>> isinstance(4, int) True >>> class foo(int): ... def bar(self): ... pass ... >>> f = foo() >>> isinstance(f, int) True |
您可以导入类型并对照它们检查变量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> 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 |
对于更具体的情况,您将使用如下内容:
1 2 3 4 | if type(variable1) is int: print"It's an int" else: print"It isn't" |
请记住,这适用于已经作为正确类型存在的变量。
如果,正如您在评论(
1 2 3 4 5 | xstr ="123.4" # would use input() usually. try: int(xstr) # or float(xstr) except ValueError: print ('not int') # or 'not float' |