Python:布尔类型

在 Python 中,布尔类型(bool)是最基本的数据类型之一,用于表示逻辑上的真与假。

它只有两个取值:True 和 False,是 int 类型的子类。

bool

布尔对象。逻辑值,仅有 True 与 False 两个常量。

在数值运算中,True 等价于 1,False 等价于 0。

1、表示方法

a = True       # 布尔真值b = False      # 布尔假值 print(int(True))   # 1print(int(False))  # 0print(True + 5)    # 6 → 等价于 1 + 5

2、布尔运算符

Python 提供了逻辑运算符来操作布尔值:

print(True and False)  # False → 与运算print(True or False)   # True  → 或运算print(not True)        # False → 取反

3、比较运算符

比较运算的结果总是布尔值:

print(5 > 3)      # Trueprint(5 == 3)     # Falseprint(5 != 3)     # Trueprint(3 <= 3)     # True

4、布尔上下文

在条件语句或循环中,Python 会自动将对象转换为布尔值。

以下对象在布尔上下文中被视为 False:

🔹 None

🔹 False

🔹 数值 0(包括 0.0、0j 等)

🔹 空序列("", [], ())

🔹 空集合或字典(set(), {})

其它对象默认视为 True。

if []:    print("非空")else:    print("空对象")  # 输出此行

5、常用函数

print(bool(0))        # False → 0 转换为 Falseprint(bool(3.14))     # True  → 非零数为 Trueprint(bool(""))       # False → 空字符串为 Falseprint(bool("hi"))     # True  → 非空字符串为 True print(isinstance(True, int))   # True → bool 是 int 的子类

6、特别说明

(1)bool 是 int 的子类,继承了整数的行为,但只有两个取值。

(2)在数值计算中,True == 1,False == 0,但推荐在逻辑场景中使用布尔值。

(3)与布尔相关的逻辑函数还包括 all() 和 any():

print(all([True, 1, "ok"]))  # True → 所有元素为真print(any([0, "", False]))   # False → 全部为假print(any([0, "", 5]))       # True → 至少一个为真

(4)布尔值在控制流中极为常见,例如:

items = [1, 2, 3]if items:           # 利用真值特性,非空列表为 True    print("not empty")

提示:避免写成 if flag == True:,推荐直接写成 if flag:。

📘 小结

布尔类型 bool 是 Python 中的基础逻辑类型,仅有 True 和 False 两个值,本质上是 int 的子类(True==1,False==0)。它主要用于条件判断和逻辑运算,并在控制流中随处可见。除了常用的逻辑运算符(and、or、not),还可以结合内置函数 all() 与 any() 进行聚合判断。

“点赞有美意,赞赏是鼓励”

Read more

C++手撕红黑树:从0到200行,拿下STL map底层核心

C++手撕红黑树:从0到200行,拿下STL map底层核心

文章目录 * C++手撕红黑树:从0到200行,拿下STL map底层核心 * 1. 红黑树的概念 * 1.1 红黑树的规则 * 1.2 红黑树如何确保最长路径不超过最短路径的2倍? * 1.3 红黑树的效率 * 2. 红黑树的实现 * 2.1 红黑树的结构 * 2.2 红黑树的插入 * 2.2.1 插入的大概过程 * 2.2.2 情况1:变色 * 2.2.3 情况2:单旋 + 变色 * 2.2.4 情况3:双旋 + 变色 * 2.3 红黑树的插入代码实现 * 2.

By Ne0inhk
C++学习之旅【C++伸展树介绍以及红黑树的实现】

C++学习之旅【C++伸展树介绍以及红黑树的实现】

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》《数据结构与算法》 《C++知识内容》《Linux系统知识》 ✨逆境不吐心中苦,顺境不忘来时路!🎬 博主简介: 引言:前篇文章,小编已经介绍了关于C++AVL树的实现!相信大家应该有所收获!接下来我将带领大家继续深入学习C++的相关内容!本篇文章着重介绍关于C++伸展树介绍以及红黑树的实现!伸展树与红黑树是两类极具代表性的BBST,且在工程实践中各有不可替代的价值:伸展树摒弃了"严格平衡”的执念,通过“伸展”操作将最近访问的节点移至根节点,利用“局部性原理”优化频繁访问的场景,实现均摊O(logn)的时间复杂度,适合缓存、热点数据查询等场景;红黑树则通过给节点着色并遵守严格的颜色规则,确保树的最长路径不超过最短路径的两倍,以 “弱平衡” 换稳定的最坏O(logn)性能,是C++ STL 中 std::map、std:

By Ne0inhk
C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板 💡 学习目标:掌握模板进阶技术的核心用法,理解模板特化的深层应用、类型萃取的实现原理,以及可变参数模板的灵活使用,提升泛型编程的实战能力。 💡 学习重点:模板特化的进阶场景、类型萃取工具的设计与应用、可变参数模板的展开技巧、折叠表达式的使用方法。 一、模板特化进阶:处理复杂类型场景 💡 模板特化不只是针对单一类型的定制,还能处理指针、引用、数组等复杂类型,实现更精细的类型适配逻辑。 1.1 指针类型的模板特化 通用模板默认处理普通类型,我们可以为指针类型单独编写特化版本,实现指针专属的逻辑。 #include<iostream>#include<string>usingnamespace std;// 通用模板:处理普通类型template<typenameT>classTypeProcessor{public:staticvoidprocess(T data){ cout

By Ne0inhk

C++ 设计模式概述及常用模式

C++ 设计模式概述 本文介绍了C++中23种设计模式的分类及实现示例,主要分为三大类: 创建型模式(5个):单例模式(常用)、工厂方法模式(常用)、抽象工厂模式(常用)、建造者模式和原型模式。这些模式专注于对象的创建机制。 结构型模式(7个):适配器模式(常用)、桥接模式、组合模式和装饰器模式(常用)等。这些模式处理类和对象的组合方式。 行为型模式:未完整列出,但包含观察者模式等(未展示完整代码)。 文章通过简洁的C++代码示例展示了常用设计模式的实现方法,如单例模式通过私有构造函数和静态方法确保唯一实例,工厂方法模式通过抽象工厂类创建产品等。这些模式为解决特定设计问题提供了可重用的解决方案。 C++ 设计模式概述及常用模式 设计模式可分为三大类:创建型、结构型、行为型。以下是23个设计模式的分类及代码示例: 一、创建型模式(5个) 1. 单例模式(Singleton)⭐ 常用 classSingleton{private:static

By Ne0inhk