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/C++ 的输入输出你真的玩会了吗?

【算法竞赛】C/C++ 的输入输出你真的玩会了吗?

🔭 个人主页:散峰而望 《C语言:从基础到进阶》《编程工具的下载和使用》《C语言刷题》《算法竞赛从入门到获奖》《人工智能AI学习》《AI Agent》 愿为出海月,不做归山云 🎬博主简介 文章目录 * 前言 * 1. OJ(online judge)题目输入情况汇总 * 1.1 单组测试用例 * 1.2 多组测试用例 * 1.2.1 测试数据组数已知 * 1.2.2 测试数据组未知 * 1.2.3 特殊值结束测试数据 * 2. 输入时特殊技巧 * 2.1 含空格字符串的特殊处理方式 * 2.2 数字的特殊处理方式 * 3. scanf/printf 和

By Ne0inhk
【C++】C++异常

【C++】C++异常

🎬 个人主页:MSTcheng · ZEEKLOG 🌱 代码仓库 :MSTcheng · Gitee 🔥 精选专栏: 《C语言》 《数据结构》 《算法学习》 《C++由浅入深》 💬座右铭:路虽远行则将至,事虽难做则必成! 在前面的文章中,我们已经介绍了C++11的一些新特性。本文将和下一篇一起为大家讲解C++的最后两个重要主题:异常处理和智能指针。 文章目录 * 一、异常的概念及使用 * 1.1异常的概念 * 1.2异常的分类 * 1.3异常的抛出与捕获 * 1.4栈展开 * 1.5 查找匹配的处理代码 * 1.6异常重新抛出 * 1.7异常的安全问题 * 1.8异常规范 * 二、总结 一、异常的概念及使用 1.1异常的概念 异常(Exception)是指在程序执行过程中发生的意外或错误情况,

By Ne0inhk
【STL】手撕 vector:从 0 到 1 模拟实现 STL 容器

【STL】手撕 vector:从 0 到 1 模拟实现 STL 容器

前言 STL 容器是 C++ 开发中绕不开的 “神兵利器”,而vector作为最常用的动态数组容器,更是新手入门 STL 的核心内容。但多数时候,我们只是 “会用”vector,却对它的底层逻辑一知半解 —— 比如它如何动态扩容?push_back的内存管理是怎样的?构造函数的匹配规则为何如此复杂? 与其停留在 “黑盒调用” 的层面,不如亲手模拟实现一个 vector:从底层的指针管理(_start/_finish/_endofstorage),到核心接口(push_back/resize/operator[]),再到构造、拷贝等特殊函数的实现,一步步揭开 STL 容器的面纱。 本文不会纠结过于晦涩的标准细节,而是以 “实用、易懂” 为核心,带你用 C++ 手动实现一个具备基础功能的vector—— 既能加深对容器原理的理解,也能锻炼 C++ 的底层编程能力。

By Ne0inhk
C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现

C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现

🔥@雾忱星: 个人主页 👀专栏:《数据结构与算法入门指南》、《C++学习之旅》 💪学习阶段:C/C++、数据结构与算法 ⏳“人理解迭代,神理解递归。” 文章目录 * 引言 * 一、拷贝构造函数 * 1.1 解析:拷贝构造特点 * 1.2 关键:拷贝构造的调用 * 二、赋值运算符重载 * 2.1 铺垫:运算符重载特点 * 2.1.1 核心:理解运算符重载 * 2.2 进阶:赋值运算符重载特点 * 2.2 核心:理解赋值运算符重载 * 总结 引言 在C++面向对象编程中,对象的复制操作无处不在。无论是函数传参、返回值传递,

By Ne0inhk