Python3:我想知道我是否可以像通常那样设置一个if语句来执行一些代码。
但是我希望声明能像这样:(psudo-code)
If variable1 !== "variable type integer":
then break.
这可能吗?谢谢您的帮助。
如果已经解决这个问题我很抱歉,但搜索建议机器人没有任何帖子指出我。
Jesse,NOOb
答案 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'