Python 布尔值

布尔值表示一个逻辑运算的结果,像其他语言一样,Python 布尔类型的值只有 2 个: TrueFalse

布尔值表示一个逻辑运算的结果,像其他语言一样,Python 布尔类型的值只有 2 个: TrueFalse

  • True 表示一个逻辑运算的结果为真
  • False 表示一个逻辑运算的结果为假

比如,对两个数值进行比较运算的时候,结果就是布尔值,表示比较的结果是否成立。

print(10 > 9)   # 输出 True
print(10 == 9)  # 输出 False
print(10 < 9)   # 输出 False

在 if 语句中的条件也需要一个布尔值,如果条件为真,就执行 if 代码块,否则执行 else 代码块。

a = 200
b = 33

if b > a:
  print("b is greater than a")
else:
  print("b is not greater than a")

输出:

b is not greater than a

评估值和变量

bool() 函数允许您评估任何值,并返回 TrueFalse

计算一个字符串和一个数字:

print(bool("Hello"))  # 输出 True
print(bool(15))       # 输出 True

评估两个变量:

x = "Hello"
y = 15

print(bool(x)) # 输出 True
print(bool(y)) # 输出 True

大多数值都是 True

如果它具有某种内容,几乎任何值都会被评估为 True

  • 任何字符串都是 True ,空字符串除外。
  • 任何数字都是 True ,除了 0
  • 任何列表、元组、集合和字典都是 True ,空的除外。

以下将返回 True:

bool("abc") # True
bool(123) # True
bool(["apple", "cherry", "banana"]) # True

返回 False 的值

实际上, 除了空值(例如 ()[]{}""、 数字 0None 值 )之外,计算为 False 的值并不多。当然 False 计算结果为 False

以下将返回 False:

bool(False) # False
bool(None)  # False
bool(0)     # False
bool("")    # False
bool(())    # False
bool([])    # False
bool({})    # False

还有一种情况,当一个类的的 __len__ 函数的返回值为 0 或者 False 时,这个类的对象的评估结果为 False

class myclass():
  def __len__(self):
    return 0

myobj = myclass()
print(bool(myobj)) # 输出 False

函数可以返回布尔值

函数可以返回一个布尔值作为结果。

def myFunction() :
  return True

print(myFunction()) # 输出 True

您可以根据函数的返回值作为条件来执行代码:

def myFunction() :
  return True

if myFunction():
  print("YES!")
else:
  print("NO!")

输出: YES!

Python 也有许多返回布尔值的内置函数,如 isinstance() 函数,可用于确定对象是否属于某种数据类型。

检查对象是否为整数:

x = 200
print(isinstance(x, int)) # 输出 True