首页 > 编程语言 >Python:条件分支 if 语句全讲解

Python:条件分支 if 语句全讲解

时间:2024-11-10 21:41:17浏览次数:1  
标签:语句 False para chof 示例 Python com 讲解 True

如果我拿出下面的代码,阁下该做何应对?

if not reset_excuted and (terminated or truncated):
...
else:
...

前言:

消化论文代码的时候看到这个东西直接大脑冻结,没想过会在这么基础的东西上犯难

运算符优先级

在 Python 中,布尔运算符的优先级从高到低的顺序如下:

括号 ():最高优先级,可以用于明确运算顺序。

not:次高优先级。

and:次低优先级。

or:最低优先级。

优先级解析示例

示例 1: 使用括号

a = True
b = False
c = True

result = (a and not b) or c

在这个例子中:

括号 首先被计算:a and not b 中 not b 计算为 not False,结果为 True。然后,True and True 计算为 True。

最后,整体表达式变为 True or c,结果是 True。

示例 2: 不使用括号

x = False
y = True
z = False

result = x or y and not z

在这个例子中:

优先级 按照 not > and > or:not z 计算为 not False,结果是 True。

然后表达式转为 x or y and True。

接着 y and True 计算为 True。

最终计算为 x or True,结果是 True。

复杂示例

p = True
q = False
r = False

result = not (p and q) or r

在这个示例中:

括号 首先被计算:p and q 计算为 True and False,结果是 False。

然后,not False 计算为 True。

最终表达式变为 True or r,结果是 True。

复杂 if 语句判断

在表达式 if not a and b 中,not 只对 a 生效,不影响 b。

not 的优先级高于 and,这意味着它会先处理 a 的值。

首先计算 not a,这将返回 a 的布尔值的相反值。

然后,使用 and 运算符将结果与 b 进行比较。

if not para_A and (para_B or para_C):
print("进入上面的分支")
else:
print("进入下面的分支")

回到开头的示例,细细的捋一捋,在这段代码中:

在这里,not只对para_A生效,而不对(para_B or para_C)生效

要推算在什么情况下进入上面的分支或下面的分支,可以分析条件的每个部分。

分析条件

not para_A:要求 para_A 为 False。

这意味着要进入上面的分支,para_A 必须是 False。

(para_B or para_C):要求 para_B 或 para_C 至少有一个为 True。

这意味着只要 para_B 为 True 或 para_C 为 True,这个部分就成立。

进入上面的分支的条件

整体条件为 not para_A and (para_B or para_C),因此要进入上面的分支,必须满足以下条件:

条件 1:para_A 是 False。

条件 2:para_B 是 True 或 para_C 是 True(至少有一个为 True)。

进入下面的分支的条件

为了进入下面的分支,条件需要不成立,即:

条件 A:para_A 是 True。

这时 not para_A 为 False,条件就不成立。

条件 B:para_A 是 False,但 para_B 和 para_C 都是 False。

这时 (para_B or para_C) 为 False,条件也不成立。

总结条件表

结论

进入上面的分支:当 para_A 为 False,且 para_B 或 para_C 至少有一个为 True。

进入下面的分支:当 para_A 为 True 或者 para_A 为 False,但 para_B 和 para_C 都为 False。

多分支语句 elif

都写那么多了,干脆再补点东西显得更完整吧

在 Python 中,elif 是 “else if” 的缩写,用于在 if 语句中进行多重条件判断。它允许你在第一个 if 条件为 False 的情况下继续检查其他条件,从而实现更多的分支逻辑。

if condition1:
# 当 condition1 为 True 时执行的代码
elif condition2:
# 当 condition1 为 False 且 condition2 为 True 时执行的代码
elif condition3:
# 当 condition1 和 condition2 都为 False 且 condition3 为 True 时执行的代码
else:
# 当上面的所有条件都为 False 时执行的代码

德摩根定律

在 j 实际代码应用中,你基本用不上这个定律,上面的东西已经可以解决绝大部分问题了。但如果程序非要在if条件语句上向你发难,至少你也知道怎么应对

德摩根定律是布尔代数中的两个重要定律,它们提供了关于逻辑运算(与、或和非)之间关系的重要公式。这两个定律如下:

第一条定律:

not(A or B)≡notA and notB

解释:否定 A 或 B 相当于 A 和 B 的否定相与。

第二条定律:

not(A and B)≡notA or notB

解释:否定 A 且 B 相当于 A 的否定或 B 的否定。

举例说明

我们可以通过几个示例来理解这些定律:

示例 1:第一条定律

考虑 A = True 和 B = False:

计算 not(A or B):A or B 是 Truenot(A or B) 是 False

计算 not A and not B:not A 是 Falsenot B 是 Truenot A and not B 是 False

结果是一致的:not(A or B) = False 和 not A and not B = False。

示例 2:第二条定律

考虑 A = True 和 B = False:

计算 not(A and B):A and B 是 Falsenot(A and B) 是 True

计算 not A or not B:not A 是 Falsenot B 是 Truenot A or not B 是 True
chof.lxtxqh.com
chof.yuchentimes.com
chof.hebeihongqi.com
chof.ssyhmma.com
chof.hyl98.com
chof.youhezhixuan.com
chof.jilinsport.com
chof.wychyq.com
chof.gdhrgk.com
chof.jzha101.com
chof.lutuohb.com
chof.sgxinfeng.com
chof.bjyongxuan.com
chof.jxtrfund.com
chof.fyjyzsgs.com
chof.zgygzl.com
chof.clwzycgp.com
chof.wencfcw.com
chof.zmuoo.com
chof.xphysc.com
chof.kalilan.com
chof.jiexinlong.com
chof.shiyongsh.com
chof.myjhedu.com
chof.xczipper.com
chof.yjlzk.com
chof.huangpihushuichan.com
chof.yifanyuanyang.com
chof.dianyunzhisheng.com
chof.jx-tq.com
chof.shenshiapp.com
chof.hxjweiyu.com
chof.gjmsxy.com
chof.zgmcpj.com
chof.tiquality.com
chof.toto58.com
chof.lhcgzj.com
chof.gdlddb.com
chof.volanswing.com
chof.smxbsbl.com
chof.hflxzsgc.com
chof.nxttyq.com
chof.jiamuli.com
chof.banchendb.com
chof.aguailuo.com
chof.gzhajd.com
chof.gzxuezhe.com
chof.zywl9780bq.com
chof.nc-lianshun.com
chof.sp0557.com
chof.sxjnbw.com
chof.sheanxf.com
chof.fsyqd.com
chof.ygjxjgc.com
chof.cq-mba.com
chof.boni168.com
chof.kan-mei.com
chof.gxqiangli.com
chof.lzwgdn.com
chof.gz-jianyou.com
chof.zhongzhengja.com
chof.cshszgyy.com
chof.shengheyiyuan.com
chof.ybgamer.com
chof.hebeixinjinghua.com
chof.hnlrst.com
chof.gdrjzcgl.com
chof.boyuanyiren.com
chof.whxsdnhs.com
chof.sdcehb.com
chof.aisheng120.com
chof.xiekur.com
chof.wannianqngjanzhann.com
chof.whxmlyyy.com
chof.njcongchong.com
chof.newpaint-tech.com
chof.hyxxlx.com
chof.kangjishengyuan.com
chof.lidich.com
chof.dianhaoguan.com

同样,结果是相等的:not(A and B) = True 和 not A or not B = True。

标签:语句,False,para,chof,示例,Python,com,讲解,True
From: https://www.cnblogs.com/bkbk123/p/18538578

相关文章

  • Python 实现微博舆情分析的设计与实现
    引言随着互联网的发展,社交媒体平台如微博已经成为公众表达意见、分享信息的重要渠道。微博舆情分析旨在通过大数据技术和自然语言处理技术,对微博上的海量信息进行情感分析、热点挖掘和趋势预测,为政府、企业和研究机构提供决策支持。本文将详细介绍如何使用Python实现微博舆情分......
  • 带参数的 Python 装饰器让你的代码更优雅
    引言在上一篇文章中,我们介绍了Python装饰器的基本概念及其简单用法。前面讲到的装饰器都是不带参数的装饰器,在需要对装饰器做一些针对性的处理的时候就不太适用了,这个时候需要对装饰器传入一些参数,根据传入的参数进行不同的处理。带参数装饰器在实际开发中能够灵活地调整函数......
  • 告别复杂判断!Python 中实现函数重载的终极技巧
    引言说到函数重载,学过Java的同学应该不陌生,最常用的地方应该就是打印log了,对于不同的参数,调用的是不同的重载函数。那么Python如何实现函数重载呢?重载概念函数重载是指在同一作用域内,允许多个同名函数存在,但它们的参数列表不同。虽然许多编程语言(如Java和C++)支持函数......
  • 如何正确保护 Python 代码,不是 Pyinstaller
    引言在开发Python软件或者脚本时,为了保护Python代码不被盗用或篡改,我们需要借助一些工具来保护我们的源代码。通常情况下,我们可能会用Pyinstaller来保护我们的代码,并且将代码打包成可以在任何电脑上运行的单个文件。但是,Pyinstaller打包后的程序,只是将源代码编译成了pyc......
  • 怎么启动python脚本文件
    创建一个简单的python入门代码,以便示范。存储文件并复制该python文件的存储路径。使用cd命令切换工作目录到python文件所在的目录。输入变量环境中的python路径和python文件的名字。回车执行后,可完成命令行的python文件运行。......
  • 如何用python求导数
    打开python运行环境。导入微分的模块包:fromsympyimport*。定义符号变量:x=symbols('x')定义一个函数:f=x**9diff=diff(f,x)求导最后输入diff,即可显示其变量值了。......
  • Python decimal模块用法
    decimal模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。    在Python中,将变量声明为 Decimal 类型通常用于需要高精度和小数运算的场合。Decimal 类型属于 deci......
  • DBeaver如何一次性执行多条sql语句,原来和单条不一样!
    前言我之前一直是用Navicat来连接数据库的,说实话,用起来真的很舒服。但是,后来,我离职了,换了一家新公司。新公司有一个规定,不准使用Navicat,其中的原因众所周知。由于Navicat是付费的,而公司又不想付这笔钱。而且,也不能使用破解的。于是,公司给我们推荐了DBeaver这款连接工具。好吧......
  • 基于SpringBoot+Vue的高校毕业生就业信息管理系统的设计与实现(源码+lw+部署+讲解)
    文章目录1.前言2.详细视频演示3.具体实现截图4.技术可行性分析5.技术简介5.1后端框架SpringBoot5.2前端框架Vue5.3系统开发平台6.系统架构设计7.程序操作流程8.业务流程设计9.为什么选择我们9.1自己的公众号9.2海量实战案例10.代码参考11.数据库参考12.源码及文档获取......
  • 基于SpringBoot+Vue的在线购物平台的设计与实现(源码+lw+部署+讲解)
    文章目录1.前言2.详细视频演示3.具体实现截图4.技术可行性分析5.技术简介5.1后端框架SpringBoot5.2前端框架Vue5.3系统开发平台6.系统架构设计7.程序操作流程8.业务流程设计9.为什么选择我们9.1自己的公众号9.2海量实战案例10.代码参考11.数据库参考12.源码及文档获取......