python中的if很灵活,他可以判断所有的数据类型,根据数据类型的不同,来判定if的结果,通常可以理解为:数据类型的默认初始值都是False的!见如下测试结果,首先是数据类型列举:
>>> type(0L)
<type 'long'>
>>> type(0.0)
<type 'float'>
>>> type(0)
<type 'int'>
>>> type('')
<type 'str'>
>>> type("")
<type 'str'>
>>> type([])
<type 'list'>
>>> type({})
<type 'dict'>
>>> type(())
<type 'tuple'>
>>> type(False)
<type 'bool'>
>>> type(None)
<type 'NoneType'>
然后是if判定的结果(其中tuple比较特别,因为它本身是通过"()"来标记的,而在语法上"()"又有其他用途,所以要特殊处理,详见下面代码):
>>> if 0:
... print 0
...
>>> if 1:
... print 1
...
1
>>> if 0.0:
... print 0.1
...
>>> if 0.1:
... print 0.1
...
0.1
>>> if 0L:
... print 0L
...
>>> if 1L:
... print 1L
...
1
>>> if '':
... print 'empty'
...
>>> if ' ':
... print 'blank'
...
blank
>>> if []:
... print []
...
>>> if [0]:
... print [0]
...
[0]
>>> if None:
... print None
>>> t = ()
>>> type(t)
<type 'tuple'>
>>> if t:
... print t
...
>>> t1 = (0)
>>> type(t1)
<type 'int'>
>>> t2 = (0,)
>>> type(t2)
<type 'tuple'>
>>> if t2:
... print t2
...
(0,)