You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中None、True、False是什么?类别、类型及布尔类型相关疑问

Python中的None、True、False详解及布尔类型疑问解答

嘿,这个问题问得挺到位的,我来给你掰扯清楚:

一、None、True、False的身份:关键字+内置常量

首先明确:这三个都是Python的关键字,同时也是语言内置的常量——Python3里你没法给它们重新赋值(强行赋值会直接抛语法错误),就是为了保证这些核心标识的一致性。

1. None

  • 它是Python里专门表示「空值/无值」的特殊常量,唯一对应的类型是NoneType。
  • 别把它和0、空字符串""、空列表[]搞混:0是有效数字,空序列是有类型的空容器,而None代表的是「这个位置没有任何值」。
  • 常见使用场景:函数没写return语句时默认返回None;或者初始化变量,标记该变量暂未被赋予有效内容。
  • 示例代码:
    def empty_func():
        pass
    print(empty_func())  # 输出 None
    

2. True 和 False

  • 这俩是布尔类型(bool)仅有的两个常量,分别对应逻辑判断里的「真」和「假」。
  • 它们的类型是bool,而bool实际上是int的子类——所以你会看到True == 1返回True,False == 0也返回True,但它们的类型是不同的:
    print(type(True))  # 输出 <class 'bool'>
    print(type(1))     # 输出 <class 'int'>
    
  • 划重点:Python3里它们是严格的关键字,绝不能被重新赋值(比如True = 100会直接报错);Python2里虽然允许这么干,但那是历史遗留问题,现在完全不推荐。

二、Python到底有没有布尔类型?

当然有!Python在2.3版本正式引入了bool类型,在此之前大家用1和0表示真/假,但之后就有了专门的布尔类型来做逻辑判断。

刚才也提到了,bool是int的子类,所以布尔值能和整数做运算(比如True + 2会返回3),但这只是继承带来的特性,完全不影响它作为独立布尔类型的存在——现在写Python代码,逻辑判断里用True/False才是标准写法。

内容的提问来源于stack exchange,提问作者peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:53:20