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语言指针与数组的深度关联及实战应用 💡 学习目标:掌握指针与数组的内在联系,熟练运用指针操作数组元素,解决实际开发中的数组遍历、数据交换等问题;学习重点:数组名的本质、指针算术运算操作数组、指针数组与数组指针的区别及应用。 38.1 数组名与指针的关系 在C语言中,数组和指针有着密不可分的联系。很多初学者会混淆数组名和指针变量的概念,其实二者既有关联,又有本质区别。 38.1.1 数组名的本质 💡 数组名在大多数情况下会被编译器隐式转换为指向数组首元素的常量指针。 我们来看一段简单的代码: #include<stdio.h>intmain(){int arr[5]={10,20,30,40,50};printf("数组首元素地址:%p\n", arr);printf("数组首元素地址:%p\n&

By Ne0inhk
【LeetCode必刷好题】:Java顺序表实现杨辉三角

【LeetCode必刷好题】:Java顺序表实现杨辉三角

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:Java.数据结构 【前言】 杨辉三角作为经典的数学与编程结合案例,是理解二维数组和动态列表操作的绝佳素材。本文将带你从逻辑拆解、问题分析、优化方向等角度进行详细解析,带你彻底掌握杨辉三角的实现精髓。 文章目录: * 一、杨辉三角思路分析 * 二、代码实现 * 三、总结 一、杨辉三角思路分析 杨辉三角每一行数字都是上一行两个相邻数字之和 思路分析: 创建一个二维列表List<List<Integer>>,储存整个三角外层循环控制行数 i,0~numRows内层循环是列数 j,小于 i每一行第一个和最后一个是1中间元素通过上一行相邻元素加得 二、代码实现 publicclassTest{publicList<List<Integer&

By Ne0inhk
【数据结构指南】堆排序和TopK

【数据结构指南】堆排序和TopK

前言:         在上一篇博客中,我们深入了解了堆的基础概念并完成了堆结构的具体实现。本篇将继续探讨堆在实际应用中的使用场景,重点分析两个核心应用:高效的堆排序算法和解决TopK问题的巧妙方法。          一、建堆                  建堆算法是将无序数组转化为符合“堆规则”的完全二叉树(逻辑结构)的核心方法,是堆排序、Top K等所有堆应用的基础,相比于通过数据结构中堆的插入建堆,需要额外O(N)的空间复杂度,基于数组原地实现建堆,仅需要O(1)的空间复杂度。                  1.1向上调整算法的回顾          场景实例:假设现在存在一个小堆,要向堆中插入一个元素,并维持堆的结构。          核心逻辑:             新元素插入堆尾后,它的父节点可能比新插入子节点小 —— 让新元素“ 上浮 ”,与父节点交换,直到它比父节点小,或浮到根节点(堆顶)。              简而言之,对于向上调整算法的核心思维就是:当子节点可能比父节点 “更合适”时,需要让子节点往上浮,找到合适

By Ne0inhk

吴恩达《机器学习2022》C1-W2 : 逻辑回归

定义 逻辑回归是一种用于分类任务的机器学习算法(虽然名字带 “回归”,但实际是分类模型),核心是用 “概率” 的方式判断样本属于某一类别的可能性。 核心特点: 1. 任务类型:解决二分类问题(比如 “肿瘤是否恶性”“邮件是否垃圾邮件”),也可以扩展到多分类。 2. 输出形式:输出 0~1 之间的概率值(比如输出 0.8 代表 “样本属于正类的概率是 80%”)。 3. 模型原理: * 先通过线性组合(z=w⋅x+b)处理特征; * 再用Sigmoid 函数把线性结果映射到 0~1。 1. 损失函数:用对数似然损失(就是你图里分情况的形式),保证优化时能找到全局最优。 简单说:逻辑回归是 “用线性模型 + Sigmoid 函数,

By Ne0inhk