Python bool 到底怎么用? 【源码拆解】

news2025/7/21 18:36:57

人生苦短 我用python

在这里插入图片描述

一、布尔类型描述

布尔类型是计算机中最基本的类型,
它是计算机二进制世界的体现,一切都是 0 和 1 。
Python中的布尔类型只有两种值:TrueFalse

(注意:首字母都是大写,与C++JavaScript中的小写有所不同)

布尔类型回答的是 是非 问题,
那么什么情况下是 True ,
什么情况下是 False 呢?

Python里面实现了一个 类型对象 叫做 bool ,
bool是一个 int 的子类,
内置的 True 和 False 就是bool仅有的两个实例对象。

python 中布尔值使用常量 TrueFalse来表示
注意 T F 大小写

bool 是 int 的子类(继承 int ),
故 True == 1 False == 0 是会返回 Ture

bool 类型只有两种状态真或假

使用bool我们就可以对对象进行布尔真假判断:

为假的情况有:

print(bool(None))#python源码籽料:903971231 ### 源码领取
print(bool(0))
print(bool(0.0))
print(bool(0j))  # 虚数
print(bool(Decimal(0)))  # 0  from decimal import Decimal
print(bool(Fraction(0, 1)))  # 0  from fractions import Fraction
print(bool(''))  # 空字符串
print(bool({}))  # 空字典
print(bool(set()))  # 空集合
print(bool(()))  # 空元组
print(bool([]))  # 空列表

在这里插入图片描述

二、布尔运算

优先级:not > and >or

在这里插入图片描述
说明:

(1) or是一种“短路运算符”,只有当第一个为False时才去验证第二个。即:两个变量只要有一个为True则为True。

(2) and 也是种“短路运算符”,只有当第一个为True时才去验证第二个。即:两个变量都为True时结果才为True。

(3) not 的优先级比非布尔运算符底,所以 not a == b 解释为 not (a == b) ,并且 a == not b 是语法错误。

print(1 > 2 or 2 > 1)
print(1 < 2 and 1 < 3)
print(not 1 == 2)

在这里插入图片描述

三、比较运算

前面提到,
布尔值反应的是“是非”,
有比较才有是非。

Python中有8中比较运算。
它们有相同的优先级,
比布尔运算的优先级高。
比较运算符可以任意的连写,
比如: x < y <=z 相当于 x < y and y <= z

在这里插入图片描述

四、总结

布尔类型(True, False)表示“是非”,
是比较运算的结果,
是条件判断的结果,
从而决定程序的流程和分支走向。

默认情况下,
所有类型都可以转化为布尔类型

from decimal import Decimal
from fractions import Fraction
 
print(bool(None))
print(bool(0))
print(bool(0.0))
print(bool(0j))  # 虚数
print(bool(Decimal(0)))  # 0  from decimal import Decimal
print(bool(Fraction(0, 1)))  # 0  from fractions import Fraction
print(bool(''))  # 空字符串
print(bool({}))  # 空字典
print(bool(set()))  # 空集合
print(bool(()))  # 空元组
print(bool([]))  # 空列表
 
print(1 > 2 or 2 > 1)
print(1 < 2 and 1 < 3)
print(not 1 == 2)

在这里插入图片描述

五、源码

bool(x) -> bool

Returns True when the argument x is true, False otherwise.
The builtins True and False are the only two instances of the class bool.
The class bool is a subclass of the class int, and cannot be subclassed.

class bool(int):python源码籽料:903971231 ### 源码领取
    """
    bool(x) -> bool
    
    Returns True when the argument x is true, False otherwise.
    The builtins True and False are the only two instances of the class bool.
    The class bool is a subclass of the class int, and cannot be subclassed.
    """
    def __and__(self, *args, **kwargs): # real signature unknown
        """ Return self&value. """
        pass
 
    def __init__(self, x): # real signature unknown; restored from __doc__
        pass
 
    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass
 
    def __or__(self, *args, **kwargs): # real signature unknown
        """ Return self|value. """
        pass
 
    def __rand__(self, *args, **kwargs): # real signature unknown
        """ Return value&self. """
        pass
 
    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass
 
    def __ror__(self, *args, **kwargs): # real signature unknown
        """ Return value|self. """
        pass
 
    def __rxor__(self, *args, **kwargs): # real signature unknown
        """ Return value^self. """
        pass
 
    def __xor__(self, *args, **kwargs): # real signature unknown
        """ Return self^value. """
        pass

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

女生学习大数据怎么样~有前景么

当前大数据发展前景非常不错&#xff0c;且大数据领域对于人才类型的需求比较多元化&#xff0c;女生学习大数据也会有比较多的工作机会。大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度&#xff0c;女生则有女生的优势&#xff0c;只要认真学习了都是可以做大数据…

STM32定时器的编码器接口模式

MCU为STM32L431&#xff0c;通用定时器框图&#xff1a; 编码器接口模式一共有三种&#xff0c;通过TIMx_SMCR寄存器的SMS[3:0]位来选择。模式1计数器仅在TI1FP1的边沿根据TI2FP2的电平来判断向上/下计数&#xff1b;模式2计数器仅在TI2FP2的边沿根据TI1FP1的电平来判断向上/下…

Python面向对象的三大特征 - - 封装、继承、多态

目录 一、三大特征介绍 1、封装&#xff08;隐藏&#xff09; 2、继承 3、多态 二、继承 1、子类扩展父类 1.语法格式 2.构造函数 2、类成员的继承和重写 1. 成员继承 2. 方法重写 3、查看类的继承层次结构 4、object根类 1.描述 2. dir() 查看对象属性&#xff…

JVM-可达性分析算法

JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈…

maven的学习

为啥要用maven 1、不用认为添加jar包所依赖的其他jar包 2、能在本地仓库只保留一份jar包&#xff0c;避免了多个工程使用相同jar包&#xff0c;需要重复导入的问题&#xff0c;减少冗余 3、能够规范添加jar包&#xff0c;在下载需要的jar包时有多种方法&#xff0c;但是不能保…

TeeChart VCL/FMX v2023 crack

TeeChart VCL/FMX v2023 crack TeeChart Pro VCL允许您为所有领域(包括商业、工程、金融、统计、科学、医疗、实时和网络)创建通用和专用图表和绘图应用程序。TeeChart Pro VCL具有多种图表类型的图表库&#xff0c;包括2D或3D线条、条形图、水平条、区域、点、饼图、箭头、气泡…

MySQL OCP888题解043-GTID模式下如何解决主键冲突问题

文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析3、知识点3.1、知识点1&#xff1a;GTID模式下跳过一个事务的方法4、总结1、原题 1.1、英文原题 A simple master-to-slave replication is currently being used. This information is extracted from the SH…

Kubernetes学习(三)Service

Service对象 为什么需要Service 每个Pod都有自己的IP地址&#xff0c;但是在Deployment中&#xff0c;在同一时刻运行的Pod集合可能与稍后运行该应用程序的Pod集合不同。 这就导致了一个问题&#xff1a;如果一组Pod&#xff08;称为后端&#xff09;为集群内其他Pod&#x…

Java测试题

选择题&#xff08;共15题&#xff0c;每题2分&#xff09;( B ) 1、使用下面哪个表达式能产生[20,999]之间的数&#xff1f;A.(int)(20Math.random( )*979) B.20(int)(Math.random( )*980)C.(int)Math.random( )*999 D.20(int)Math.random( )*980( C )2、请仔细阅读下面的程序…

【记录】Samba|Windows 11的Samba连接切换用户

Samba是一个用于共享文件和打印机的网络协议&#xff0c;可以使不同的操作系统之间共享文件和资源变得容易。在Windows 11上&#xff0c;可以使用Samba来连接到网络共享。 如果您想在Windows 11上切换用户并连接到另一个Samba共享&#xff0c;可以按照以下步骤操作。 文章目录…

乐山持点电商:抖音外卖上线全国18城公告

抖音日前在全国15个城市上线外卖业务&#xff0c;包括南京、厦门、合肥、嘉兴、宁波、广州、无锡、杭州、武汉、深圳、温州、苏州、金华、长沙、福州等。加上此前抖音外卖试点的北京、上海和成都&#xff0c;抖音外卖已覆盖全国18个城市&#xff0c;入驻商家主要集中在餐饮行业…

基于声网 Flutter SDK 实现多人视频通话

前言 本文是由声网社区的开发者“小猿”撰写的Flutter基础教程系列中的第一篇。本文除了讲述实现多人视频通话的过程&#xff0c;还有一些 Flutter 开发方面的知识点。该系列将基于声网 Fluttter SDK 实现视频通话、互动直播&#xff0c;并尝试虚拟背景等更多功能的实现。 如果…

lvgl 笔记 基础对象与组件

一、基础对象 1.1基础对象简介 lvgl 库是纯 c 语言编写的&#xff0c;使用结构体实现类的操作。其所有组件都继承字lv_obj_t&#xff0c;可以使用他的属性和方法。 创建一个基本对象非常简单&#xff1a; lv_obj_t* obj1 lv_obj_create(lv_scr_act()); 其中填入的 lv_scr_a…

KUKA U盘备份系统

KUKA U盘备份系统 原创 March Cai Cass 机器人 2022-03-10 12:39 首先想做系统备份&#xff0c;需要KUKA 官方的U盘&#xff0c;需要设置如下 双击KUKA U盘里的Recovery.exe 打开如右上图&#xff0c;点开专家设置 设置好需要的功能 返回主菜单组选择 配置界面&#xff0c;…

20230306 LS-DYNA悬臂梁案例学习笔记

一、创建材料 在左侧linear elastic,将这个拉至新建的mat材料上

【立体匹配论文阅读】Pyramid Stereo Matching Network

Authors: Jia-Ren Chang, Yong-Sheng Chen Link: https://arxiv.org/abs/1803.08669 Years: 2018 Credit Novelty and Question set up 本文提出之时&#xff0c;基于深度学习的立体匹配主流方式仍是patch-based孪生结构&#xff0c;这种方式缺乏上下文信息的获取能力&#xf…

buuctf-web-[SUCTF 2018]MultiSQL1

打开界面&#xff0c;全部点击一遍&#xff0c;只有注册和登录功能可以使用注册一个账号&#xff0c;注册admin提示用户存在&#xff0c;可能有二次注入&#xff0c;注册admin自动加了一个字符&#xff0c;无法二次注入&#xff0c;点击其他功能点换浏览器重新登录后&#xff0…

java多线程(二一)并发协作生产者消费者设计模式

1.两个线程一个生产者一个消费者 需求情景 两个线程&#xff0c;一个负责生产&#xff0c;一个负责消费&#xff0c;生产者生产一个&#xff0c;消费者消费一个。 涉及问题 同步问题&#xff1a;如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加…

如何查看并读懂昇腾平台的应用日志

当您完成训练/推理工程开发后&#xff0c;将工程放到昇腾平台运行&#xff0c;以调试工程是否正常&#xff0c;此时&#xff0c;可能会出现各种各样、五花八门的异常状况。当问题发生时&#xff0c;我们的第一反应是不是查看日志&#xff0c;看看哪里报错了。昇腾平台有哪些日志…

面向对象设计模式:结构型模式之装饰器模式

一、引入 咖啡馆订购系统 Initial 初始 4 种咖啡 House blend (混合咖啡)Dark Roast (深度烘培)Decaf (低咖啡因咖啡)Espresso (意式浓缩咖啡) 需求变更&#xff1a;客户可以加料&#xff08;咖啡、牛奶、糖等&#xff09; steamed milksoymochaWhip 使用继承&#xff1…