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,)