Python 真值测试

programmingpythonserver side programming

什么是真值

我们可以使用任何对象来测试真值。通过在 if 或 while 语句中提供条件,可以进行检查。

直到类方法 __bool__() 返回 False 或 __len__() 方法返回 0,我们都可以认为该对象的真值为 True

  • 当常量为 FalseNone 时,其值为 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,则
bool(a) = True

让我们看看真值的反面,即 0 的真值是 False −

a = 0,则
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

相关文章