课时36:非布尔值的逻辑运算符

简介: 本文主要围绕Python中对非布尔值进行与或运算的情况展开,详细介绍了其运算规则,并通过实例演示加深理解,随后引入了最后一种运算符——条件运算符(三元运算符),即将对其语法进行讲解。1.非布尔值的与运算2.非布尔值与运算规则总结3.非布尔值的或运算4.非布尔值或运算规则总结5.条件运算符(三元运算符)介绍

课时36:非布尔值的逻辑运算符

摘要本文主要围绕Python中对非布尔值进行与或运算的情况展开,详细介绍了其运算规则,并通过实例演示加深理解,随后引入了最后一种运算符——条件运算符(三元运算符),即将对其语法进行讲解。

1.非布尔值的与运算

2.非布尔值与运算规则总结

3.非布尔值的或运算

4.非布尔值或运算规则总结

5.条件运算符(三元运算符)介绍

 

01、 非布尔值的与运算


对于非布尔值进行或运算时会出现什么情况?

演示一下它的特点,直接在当前环境下进行。

非布尔值的与或运算,非运算就是直接取反,比较简单。重点来看看与或运算。比如说写一个`result=1 and 2`,这个`result`应该是多少?1和2做与运算,结果会是什么?

image.png

当我们对非布尔值进行与或运算时,Python会把它们当做布尔值来运算,但最终返回的是原值,而不是`True`或`False`。就像`1and2`,Python执行代码的时候,会把1和2当成布尔值,1和2都不是空值,那就相当于`True and True`了。这里问题就来了,`True and True`按道理应该返回`True`,但实际上它不会返回`True`,而是返回原值。1和2都是`True`对应的非布尔值,那到底返回1还是2?运行后结果是2。

image.png

`result=1 and 0`,这就相当于`True and False`。与运算是找`False`的,有`False`就返回`False`,应该返回0,运行一下,果然是0。

再看`result=0 and 1`,0就是`False`,按照规则,`Falseand`后面不管是什么,都直接返回第一个值0,运行后结果也确实是0。

还有`result=0 and None`,这就相当于`False and False`,这种情况肯定返回0,因为已经找到`False`了,第二个值就不用看了,保存并运行,结果就是0。

image.png

学习新东西的时候,先把各种情况找出来,再归纳总结规律。

 

02、 非布尔值与运算规则总结


来分析一下规律。当第一个值是`True`对应的非布尔值(比如1、2这些非零值)的时候,像`1 and 2`返回的是第二个值2;当第一个值是`False`对应的非布尔值(比如0)的时候,就直接返回第一个值。

其实与运算的规则就是找`False`。如果第一个值是`False`,就不用看第二个值了,直接返回第一个值。要是第一个值是`True`,那就一定要看第二个值,不管第二个值是`True`还是`False`,都会直接返回第二个值。这就是所谓的短路规则。再看`1 and 0`,第一个是True,第二个是0,其实第二个无论是什么,他都会返回,因为第一个已经是True了,他返回不了,找False

简单总结一下,就是如果第一个值是`False`,则直接返回第一个值;否则返回第二个值。这个规则不仅适用于非布尔值的与运算,对布尔值的与运算也同样适用。大家体会一下,虽然实际中做非布尔值的这种运算相对较少,但还是需要了解的。

 

03、 非布尔值的或运算


或运算的规则。或运算是找`True`的。规则是如果第一个值是`True`,就不看第二个值了。它和与运算的规则正相反。如果第一个值是`True`,则直接返回第一个值;否则返回第二个值。

演示一下。`result=1 or 2`,这相当于`True or True`,第一个值已经是`True`了,按照规则就不用看第二个值了,所以结果肯定是1,运行一下,确实是1。

再看`result=1 o r0`,也就是`True or False`,同样,第一个值是`True`,直接返回第一个值1。

`result=0 or 1`,这是`False or True`,第一个值是`False`,那就得看第二个值,所以最终结果返回第二个值1。

还有`result=0 or None``False or False`,第一个值是`False`,第二个值不管是什么都得返回,所以结果就是`None`。运行一下,结果确实是`None`。


04、 非布尔值或运算规则总结


总结一下非布尔值或运算的规则:当对非布尔值进行逻辑或运算时,Python同样会将其当做布尔值运算,最终返回原值。如果第一个值是`True`对应的非布尔值,就直接返回第一个值;如果第一个值是`False`对应的非布尔值,就返回第二个值。大家把与或运算的这几个规则都记住。

image.png

相关文章
|
7月前
|
XML Java Maven
springboot-多环境配置文件
本文介绍了如何创建开发和生产环境的配置文件,并在IDEA和Maven中进行配置。开发环境中,通过设置profile为`dev`来指定配置文件;生产环境中,使用Maven命令参数`-Pprod`打包并指定配置文件。公共配置可放在`application.yml`中统一管理。日志配置需确保`logback-spring.xml`中的profile正确,以保证日志正常输出。
386 4
springboot-多环境配置文件
|
缓存 JSON 前端开发
2023年最新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新 7
2023年最新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新
745 0
|
7月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
643 11
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
|
10月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
10月前
|
JSON JavaScript 前端开发
Highcharts 配置语法
Highcharts 配置语法
106 5
|
7月前
|
存储 缓存 弹性计算
聚宽揭秘:为什么量化研究员喜欢在Kubernetes上使用Fluid简化数据管理?
在量化投研过程中,通过引入阿里云的 ack-fluid 技术,基于 JindoRuntime 的分布式缓存加速,解决了多数据源、弹性扩展、动态挂载等挑战,显著提升了数据处理效率和资源利用率,降低运营成本。
|
7月前
|
人工智能 自然语言处理 测试技术
通义灵码上新推理模型,快来体验数学编程双冠王 Qwen2.5-Max
近日,通义灵码上新模型选择功能,除新增 DeepSeek 满血版 V3 和 R1 外,Qwen2.5-Max 也正式上线,它使用了超过 20 万亿 token 的预训练数据及精心设计的后训练方案进行训练。
|
10月前
|
监控 测试技术 开发者
一行代码改进:Logtail的多行日志采集性能提升7倍的奥秘
一个有趣的现象引起了作者的注意:当启用行首正则表达式处理多行日志时,采集性能出现下降。究竟是什么因素导致了这种现象?本文将探索Logtail多行日志采集性能提升的秘密。
505 57
|
8月前
|
弹性计算 Serverless API
What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
拥有DeepSeek-R1满血版实践教程及评测报告
3173 11
|
8月前
|
JSON 搜索推荐 数据挖掘
Temu商品列表数据接口(Temu API系列)
Temu作为新兴跨境电商平台,为全球卖家和消费者搭建便捷交易桥梁。通过商品列表数据接口,开发者、分析师可获取商品名称、价格、销量等信息,助力市场调研、商品管理和数据分析。接口支持HTTP GET请求,参数包括品类、价格区间、排序方式等,响应格式为JSON。Python示例代码展示了如何调用API获取数据,应用场景涵盖竞争对手分析、选品参考、销售预测及个性化推荐系统开发等。
2203 24