1. 真值測(cè)試
所謂真值測(cè)試,是指當(dāng)一種類型對(duì)象出現(xiàn)在if或者while條件語句中時(shí),對(duì)象值表現(xiàn)為True或者False。弄清楚各種情況下的真值對(duì)我們編寫程序有重要的意義。
對(duì)于一個(gè)對(duì)象a,其真值定義為:
以if為例(while是等價(jià)的,不做贅述),定義函數(shù)truth_test(x)為:
def truth_test(x): if x: return True else: return False
2.對(duì)象的真值測(cè)試
一般而言,對(duì)于一個(gè)對(duì)象,在滿足以下條件之一時(shí),真值測(cè)試為False;否則真值測(cè)試為True。
(1)以下類型對(duì)象真值測(cè)試為真:
class X: pass
(2)以下真值測(cè)試為假:
class Y: def __bool__(self): return False
(3)以下真值測(cè)試為假:
class Z: def __len__(self): return 0
進(jìn)入python3腳本環(huán)境,測(cè)試過程如下:
>>> class X:... pass... >>> class Y:... def __bool__(self):... return False... >>> class Z:... def __len__(self):... return 0... >>> def truth_test(x):... if x:... return True... else:... return False... >>> x = X()>>> y = Y()>>> z = Z()>>> truth_test(x)True>>> truth_test(y)False>>> truth_test(z)False>>>
3. 常見對(duì)象的真值
下面是常見的真值為False的情況:
進(jìn)入python3腳本環(huán)境,測(cè)試過程如下:
>>> truth_test(None)False>>> truth_test(False)False>>> truth_test(0)False>>> truth_test(0.0)False>>> truth_test(0j) #復(fù)數(shù)False>>> truth_test(Decimal(0)) #十進(jìn)制浮點(diǎn)數(shù)False>>> truth_test(Fraction(0,1)) #分?jǐn)?shù)False>>> truth_test(Fraction(0,2)) #分?jǐn)?shù)False>>> truth_test('')False>>> truth_test(())False>>> truth_test({})False>>> truth_test(set())False>>> truth_test(range(0)) #序列False>>> truth_test(range(2,2)) #序列False此外的其它取值,真值測(cè)試應(yīng)當(dāng)為True。
4.一些有意思的例子
下面是一些有意思的例子,原理不超出前面的解釋。
>>> if 1 and Fraction(0,1):... print(True)... else:... print(False)... False>>> if 1 and ():... print(True)... else:... print(False)... False>>> if 1 and range(0):... print(True)... else:... print(False)... False>>> if 1 and None:... print(True)... else:... print(False)... False>>> if 1+2j and None:... print(True)... else:... print(False)... False
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選