手记

Python 的内置函数 bool

Python 的内置函数 bool() 用于将给定的值转换为布尔值(TrueFalse)。它是 Python 中非常重要的类型转换函数之一,在条件判断、逻辑运算等场景中经常使用。

基本语法:

bool([x])

参数说明:

  • x:要进行转换的值(可选参数)。如果不提供任何参数,默认返回 False

返回值:

  • 返回 True 或 False 的布尔值

转换规则:

  1. 对于数字类型:

    • 0(整型)、0.0(浮点型)、0j(复数)返回 False
    • 其他非零数值返回 True
    • 示例:
      bool(0)    # False
      bool(1)    # True
      bool(0.0)  # False
      bool(3.14) # True
      
  2. 对于序列类型(字符串、列表、元组等):

    • 空序列(""、[]、()等)返回 False
    • 非空序列返回 True
    • 示例:
      bool("")     # False
      bool("abc")  # True
      bool([])     # False
      bool([1,2])  # True
      
  3. 对于字典:

    • 空字典 {} 返回 False
    • 非空字典返回 True
    • 示例:
      bool({})        # False
      bool({"a":1})   # True
      
  4. 对于 None

    • 总是返回 False
    • 示例:
      bool(None)  # False
      
  5. 对于自定义对象:

    • 默认情况下返回 True
    • 可以通过定义 __bool__()__len__() 方法来改变行为

特殊注意事项:

  • boolint 的子类,TrueFalse 实际上是 1 和 0 的别名
  • ifwhile 条件中,Python 会自动调用 bool() 函数进行隐式转换

实际应用场景:

  1. 表单验证:

    user_input = input("请输入内容:")
    if not bool(user_input):
        print("输入不能为空")
    
  2. 数据处理:

    data = [1, 2, 3, 0, 4]
    filtered = filter(bool, data)  # 过滤掉0值
    
  3. 条件判断简化:

    name = ""
    if name:  # 等价于 if bool(name)
        print("Hello", name)
    else:
        print("无名氏")
    

与其它语言的对比:

  • 与 JavaScript 不同,Python 中只有特定的"假值"会被转换为 False
  • 相比 C 语言,Python 的 bool 转换更加明确和一致
0人推荐
随时随地看视频
慕课网APP