Python3 逻辑运算符

前言

本文主要介绍python中的逻辑运算符,主要内容包括逻辑运算符简介、逻辑运算符优先级。

文章目录

  • 前言
  • 一、逻辑运算符简介
    • 1、and(与) 运算
    • 2、or(或)运算
    • 3、not(非)运算
  • 二、逻辑运算符优先级
    • 总结

一、逻辑运算符简介

逻辑运算符是用来做逻辑运算, 也就是我们数学中常说的 “与或非”。python中的逻辑运算符有 and(与)、or(或)、not(非)。

1、and(与) 运算

and(与) 运算逻辑表为: x and y ,表示如果 x 为 “假”,则 x and y 返回 x的值, 否则返回 y 的计算值。例如下面代码:

x = 5
y = 10print(x and y)

输出结果:

10

注意:python中的and 跟 C语言中的 逻辑与运算(&&)是有区别的,C语言中 的&& 运算的结果是bool类型,非真即假。而python中的 and 运算结果可以是任何类型,并且返回的值 不是 x 就是 y (运算逻辑表 :x and y)。我们再举一个例子:

x = 5
y = 10print(x>0 and y>0)     #这里的 x>0 、y>0 的计算值都是 bool 类型,x>0的计算值为True,所以返回 b>0的值,即True。

输出结果:

True

总结:运算结果的值就是最后一步判断条件的计算值——当x为假时,就能得出 a and b 为假,不再判断y,运算结果为x的值;当x为真时,就再判断y,运算结果为y的值。

2、or(或)运算

or(或) 运算逻辑表为: x or y , 表示如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。

x = 5
y = 10print(x or y)    # a 的值为True ,能判断出 a or y 的值为 True,所以不再判断y,直接输出 a的值。

输出结果:

5

python中的or 运算跟and 运算一样,运算结果可以是任何类型,并且返回的值 不是 x 就是 y,取决于最后一步判断条件。

3、not(非)运算

not(非) 运算逻辑表为: not x 表示如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

x = 5print(not x)

输出结果:

False

二、逻辑运算符优先级

接下来,我们看下三个运算符混合运用的情况,对于如下代码,代码一:比较not 与 or的优先级

a = True
b = Falseif not b or a:print("not 操作先于 or 操作")

输出结果:

not 操作先于 or 操作

if not b or a: 假如 or的优先级大于not,那 b or a 的结果为True, 则not (a or b )的结果为假,结果不会有打印,所以 能反推出:not的优先级 > or的优先级。

代码二:比较not 与 and 的优先级

a = True
b = Falseif not a and b:print("and 操作先于 not 操作")
else:print("not 操作先于 and 操作")

输出结果:

not 操作先于 and 操作

if not a and b:假如 and的优先级大于not,那 a and b 的结果为False,则 not(a and b)的结果为真,结果打印print(“and 操作先于 not 操作”),我们的输出结果是:not 操作先于 and 操作,所以能反推出 :not的优先级 > and的优先级。

代码三:比较 and 与 or 的优先级

a = True
b = False
c = Falseprint(a or b and c)  

输出结果:

True

a or b and c,假如 or 的优先级大于 and的优先级,那 a or b 结果为 True , 则 True and c 结果为 False,所以能反推出 :and的优先级 > or的优先级。

总结

逻辑运算符优先级为 not >and >or。

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

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

相关文章

13.RedHat认证-Linux Shell脚本

13.RedHat认证-Linux Shell脚本 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。 bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写 sh:由Steve Bourne开发…

用大白话讲懂ceph与clinder的区别

Ceph是一个大仓库,而clinder只是食堂openstack的一个存储组件 详细解释如下: 当我们需要存储大量数据的时候,比如照片、视频、文件等,Ceph就像是一个巨大的仓库,可以帮助我们把这些数据安全地存放起来。 Ceph与传统的…

ABP框架+Mysql(二)

展示页面--图书列表页面 本地化 开始的UI开发之前,我们首先要准备本地化的文本(这是你通常在开发应用程序时需要做的).本地化文本在前端页面会常用。 本地化文本位于 Acme.BookStore.Domain.Shared 项目的 Localization/BookStore 文件夹下: 打开 en.json (英文翻译)文件并更…

STM32-- GPIO->EXTI->NVIC中断

一、NVIC简介 什么是 NVIC ? NVIC 即嵌套向量中断控制器,全称 Nested vectored interrupt controller 。它 是内核的器件,所以它的更多描述可以看内核有关的资料。M3/M4/M7 内核都是支持 256 个中断,其中包含了 16 个系统中…

MySQL—函数—数值函数(基础)

一、引言 首先了解一下常见的数值函数哪些?并且直到它们的作用,并且演示这些函数的使用。 二、数值函数 常见的数值函数如下: 注意: 1、ceil(x)、floor(x) :向上、向下取整。 2、mod(x,y):模运算&#x…

Kmeans聚类模型

K均值(K-Means)聚类是一种常用的无监督学习算法,用于将数据集中的样本划分为K个不同的簇(cluster),使得每个样本都属于距离最近的簇的中心。K均值聚类的目标是通过最小化簇内样本的方差或欧氏距离的平方和来确定簇的中心,从而实现聚类分析。 一、Kmeans聚类模型原理 随…

CTF本地靶场搭建——GZ:CTF基础使用

GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台。 简介 GZ::CTF 是一个基于 ASP.NET Core 的开源 CTF 平台,采用 Docker 或 K8s 作为容器部署后端,提供了可自定义的题目类型、动态容器和动态分值功能。 本项目缘起于作者认为 CTFd 的实现不优雅&a…

Photoshop 首选项设置建议

Windows Ps菜单:编辑/首选项 Edit/Preferences 快捷键:Ctrl K macOS Ps菜单:Photoshop/首选项 Photoshop/Preferences 快捷键:Cmd K 对 Photoshop 的首选项 Preferences进行设置,可以提高修图与设计效率。下面是一些…

burp插件new_xp_capcha识别验证码的简易安装

1.new_xp_capcha 插件是大佬开发的可以正常白嫖,感谢大佬,我找了个不需要任何高级操作就可以做的安装手法,因为我在网上搜了一下就发现这个的安装过程攻略都还蛮复杂,我这里用了个简单的手法 2.安装 下载地址:smxia…

用Python获取Windows本机安装的所有应用程序的实现与分析

一个项目中需要获取本机安装的所有应用程序列表,花了一点时间研究了一下,分享出来。 主要通过访问注册表和桌面快捷方式来完成这一任务,因为注册表中获取到的应用程序列表不完全,因此通过桌面快捷方式进行补充。 导入所需模块 im…

上网是不是必须路由器和光猫之一负责拨号?

链接:https://www.zhihu.com/question/624856022/answer/3245182557 上网并非一定要“拨号”,使用固定IP地址可以直接上网,不需要拨号。你们公司的宽带属于商用宽带,运营商(电信)给配置了固定的IP&#…

Python面试宝典:Python中与单元测试相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第二十章:测试和调试:第一节:单元测试】 第二十章:测试和调试第一节:单元测试单元测试的关键概念:Python中的单元测试工具:使用unittest模块编写单元测试的基本步骤:示例代码面试…

不同程序猿的六一表情

初级 中级高级资深#猿脑2.0

小程序模板开发与定制开发的对比

一、引言 随着移动互联网的快速发展,小程序作为一种轻量级的应用形态,已经深入到人们的日常生活和工作中。小程序以其无需安装、即用即走的特点,受到了广大用户的青睐。在小程序开发领域,模板开发和定制开发是两种常见的开发方式…

Linux: network: arp 导致问题一例

最近读openswitch的文档,看到下面一段话,说所有的CFM/BFD等协议,ARP修改相关的包都会经过slowpath/慢路径处理。 Performance Open vSwitch has a concept of a “fast path” and a “slow path”; ideally all packets stay in the fast pa…

[补题记录]LeetCode 6.Z字形变换

传送门:Z字形变换 转自:Z字形变换 Thought/思路 关键点在于,最后的答案是一行行连接起来的。 这样我们就会发现,这个 Z 字,实际上会让行数 不断加 1,然后又 不断减 1。每次按顺序选择 S 中的一个字符即…

基于C#使用ACCESS数据库时遇到的问题记录

一、32位版本Office与64位AccessDatabaseEngine共存安装方法 1. 使用winrar、7zip等软件将AccessDatabaseEngine_X64.exe解压缩,得到AceRedist.msi和files14.cat2个文件 2. 下载Orca MSI编辑修改工具。安装后,使用Orca打开AceRedist.msi,找到…

【JavaScript脚本宇宙】工具箱必备:文件处理库

不可或缺的开发工具:卓越的JavaScript文件操作库 前言 在这篇文章中,我们将深入探讨六个强大的JavaScript库,它们各自具有独特的功能和特性,能够极大地提升开发者的生产力。这些库包括用于客户端保存文件的库、CSV解析生成库、创…

【故障诊断】基于改进型的节点重构小波包频带能量谱结合概率神经网络 PNN实现轴承联合故障诊断附matlab代码

以下是基于改进型节点重构小波包频带能量谱结合概率神经网络(Probabilistic Neural Network, PNN)实现轴承联合故障诊断的MATLAB代码示例: matlab % 步骤1:节点重构小波包频带能量谱提取特征 function features extractFeatures…

LabVIEW在喷灌系统中的自动化实现

自动化喷灌系统在农业和园艺中有着广泛应用,可以显著提高水资源利用效率和作物产量。本文将介绍如何利用LabVIEW平台实现喷灌系统的自动化控制,涵盖项目背景、系统组成与特点、实现过程和优势。 项目背景 传统的喷灌系统通常依赖人工操作,效…