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
相关产品推荐
相关产品推荐

