Python 真值测试
什么是真值
我们可以使用任何对象来测试真值。通过在 if 或 while 语句中提供条件,可以进行检查。
除非类方法 __bool__() 返回 False 或 __len__() 方法返回 0,否则我们可以认为该对象的真值为 True。
当常量的值为 False 或 None 时,其值为 False。
当变量包含不同的值,例如 0、0.0、Fraction(0, 1)、Decimal(0)、0j 时,它表示 False 值。
空序列 ‘‘、[]、()、{}、set(0)、range(0) 的真值均为 False。
1 和 0 的真值
真值 0 等效于 False,而 1 等效于 True。让我们看看真值,即 1 的真值为 True:
a = 1, then bool(a) = True
让我们看看真值的相反情况,即 0 的真值为 False:
a = 0, then bool(a) = False
让我们再看一个简单的例子。1 的真值为 True:
a = 1 if(a==1) print(“True”)
0 的真值为 False:
a = 0 if(a==0) print(“False”)
Python 真值测试示例
让我们看一个完整的例子:
示例
class A: # The class A has no __bool__ method, so default value of it is True def __init__(self): print('This is class A') a_obj = A() if a_obj: print('It is True') else: print('It is False') class B: # The class B has __bool__ method, which is returning false value def __init__(self): print('This is class B') def __bool__(self): return False b_obj = B() if b_obj: print('It is True') else: print('It is False') myList = [] # No element is available, so it returns False if myList: print('It has some elements') else: print('It has no elements') mySet = (10, 47, 84, 15) # Some elements are available, so it returns True if mySet: print('It has some elements') else: print('It has no elements')
输出
This is class A It is True This is class B It is False It has no elements It has some elements
广告