Python 检查变量是否为正整数的最简洁/简洁的方法,可能的变量类型是任何变量类型,包括布尔值
我试图找出检查变量是否为正整数的最简洁和最有说服力的方法。这就是我到目前为止所尝试的Python 检查变量是否为正整数的最简洁/简洁的方法,可能的变量类型是任何变量类型,包括布尔值,python,Python,我试图找出检查变量是否为正整数的最简洁和最有说服力的方法。这就是我到目前为止所尝试的 a = None b = 3.4 c = -1 d = 10 e = -5.7 f = '7' g = [9] h = {7} i = 3j j = r'8' k = True l = False varlist = [a, b, c, d, e, f, g, h, i, j , k, l] for vv in varlist: print( isinstance(vv, int) ) 电流输出
a = None
b = 3.4
c = -1
d = 10
e = -5.7
f = '7'
g = [9]
h = {7}
i = 3j
j = r'8'
k = True
l = False
varlist = [a, b, c, d, e, f, g, h, i, j , k, l]
for vv in varlist:
print( isinstance(vv, int) )
电流输出
False
False
True
True
False
False
False
False
False
False
True
True
理想输出
False
False
False
True
False
False
False
False
False
False
False
False
如果您只想要
int
对象而不想要子类型:
type(vv) is int and vv > 0:
do_stuff()
isinstance()和>0
?是否可能重复有问题的打字错误或理想输出?目前,你的c
为真,而d
为假?那篇文章中的答案可以将浮点值转换为int。我要找的是告诉我浮点值是无效的input@DavidBuck是的,修复了type(vv)==type(0)
正确的想法,但是使用is
来比较类型,它们是语言保证的单例,而int
是内置的
for vv in varlist:
print( type(vv) == type(0) and vv > 0 )