找回密码
 立即注册

QQ登录

只需一步,快速开始

Python条件分支 if 语句全讲授(一文把握)

2024-11-4 23:17| 发布者: 2ae29| 查看: 428| 评论: 0

摘要: 目录运算符优先级优先级解析示例示例 1: 使用括号示例 2: 不使用括号复杂示例复杂if语句判断分析条件进入上面的分支的条件进入下面的分支的条件总结条件表结论多分支语句elif德摩根定律举例说明示例 1:第一条定律示
目录

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

[code]if not reset_excuted and (terminated or truncated): ... else: ...[/code]

运算符优先级

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

  • 括号 [code]()[/code]:最高优先级,可以用于明确运算顺序。
  • [code]not[/code]:次高优先级。
  • [code]and[/code]:次低优先级。
  • [code]or[/code]:最低优先级。

优先级解析示例

示例 1: 使用括号

[code]a = True b = False c = True result = (a and not b) or c[/code]

在这个例子中:

  • 括号 首先被盘算:
    • [code]a and not b[/code] 中 [code]not b[/code] 盘算为 [code]not False[/code],结果为 [code]True[/code]。
    • 然后,[code]True and True[/code] 盘算为 [code]True[/code]。
  • 最后,团体表达式变为 [code]True or c[/code],结果是 [code]True[/code]。

示例 2: 不使用括号

[code]x = False y = True z = False result = x or y and not z[/code]

在这个例子中:

  • 优先级 按照 [code]not[/code] > [code]and[/code] > [code]or[/code]:
    • [code]not z[/code] 盘算为 [code]not False[/code],结果是 [code]True[/code]。
  • 然后表达式转为 [code]x or y and True[/code]。
  • 接着 [code]y and True[/code] 盘算为 [code]True[/code]。
  • 最终盘算为 [code]x or True[/code],结果是 [code]True[/code]。

复杂示例

[code]p = True q = False r = False result = not (p and q) or r[/code]

在这个示例中:

  • 括号 首先被盘算:
    • [code]p and q[/code] 盘算为 [code]True and False[/code],结果是 [code]False[/code]。
  • 然后,[code]not False[/code] 盘算为 [code]True[/code]。
  • 最终表达式变为 [code]True or r[/code],结果是 [code]True[/code]。

复杂if语句判断

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

  • [code]not[/code] 的优先级高于 [code]and[/code],这意味着它会先处置处罚 [code]a[/code] 的值。
  • 首先盘算 [code]not a[/code],这将返回 [code]a[/code] 的布尔值的相反值。
  • 然后,使用 [code]and[/code] 运算符将结果与 [code]b[/code] 进行比较。
[code]if not para_A and (para_B or para_C): print("进入上面的分支") else: print("进入下面的分支")[/code]

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

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

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

分析条件

  • [code]not para_A[/code]:要求 [code]para_A[/code] 为 [code]False[/code]。

    • 这意味着要进入上面的分支,[code]para_A[/code] 必须是 [code]False[/code]。
  • [code](para_B or para_C)[/code]:要求 [code]para_B[/code] 或 [code]para_C[/code] 至少有一个为 [code]True[/code]。

    • 这意味着只要 [code]para_B[/code] 为 [code]True[/code] 或 [code]para_C[/code] 为 [code]True[/code],这个部分就创建。

进入上面的分支的条件

团体条件为 [code]not para_A and (para_B or para_C)[/code],因此要进入上面的分支,必须满意以下条件:

  • 条件 1:[code]para_A[/code] 是 [code]False[/code]。
  • 条件 2:[code]para_B[/code] 是 [code]True[/code] 或 [code]para_C[/code] 是 [code]True[/code](至少有一个为 [code]True[/code])。

进入下面的分支的条件

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

  • 条件 A:[code]para_A[/code] 是 [code]True[/code]。

    • 这时 [code]not para_A[/code] 为 [code]False[/code],条件就不创建。
  • 条件 B:[code]para_A[/code] 是 [code]False[/code],但 [code]para_B[/code] 和 [code]para_C[/code] 都是 [code]False[/code]。

    • 这时 [code](para_B or para_C)[/code] 为 [code]False[/code],条件也不创建。

总结条件表

para_Apara_Bpara_C结果
FalseTrueFalse进入上面的分支
FalseFalseTrue进入上面的分支
FalseTrueTrue进入上面的分支
TrueFalseFalse进入下面的分支
TrueTrueTrue进入下面的分支
FalseFalseFalse进入下面的分支

结论

  • 进入上面的分支:当 [code]para_A[/code] 为 [code]False[/code],且 [code]para_B[/code] 或 [code]para_C[/code] 至少有一个为 [code]True[/code]。
  • 进入下面的分支:当 [code]para_A[/code] 为 [code]True[/code] 或者 [code]para_A[/code] 为 [code]False[/code],但 [code]para_B[/code] 和 [code]para_C[/code] 都为 [code]False[/code]。

多分支语句elif

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

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

[code]if condition1: # 当 condition1 为 True 时执行的代码 elif condition2: # 当 condition1 为 False 且 condition2 为 True 时执行的代码 elif condition3: # 当 condition1 和 condition2 都为 False 且 condition3 为 True 时执行的代码 else: # 当上面的全部条件都为 False 时执行的代码[/code]

德摩根定律

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

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

第一条定律

not(A or B)≡notA and notB

表明:否定 [code]A 或 B[/code] 相称于 [code]A[/code] 和 [code]B[/code] 的否定相与。

第二条定律

not(A and B)≡notA or notB

表明:否定 [code]A 且 B[/code] 相称于 [code]A[/code] 的否定或 [code]B[/code] 的否定。

举例说明

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

示例 1:第一条定律

考虑 [code]A = True[/code] 和 [code]B = False[/code]:

  • 盘算 [code]not(A or B)[/code]:
    • [code]A or B[/code] 是 [code]True[/code]
    • [code]not(A or B)[/code] 是 [code]False[/code]
  • 盘算 [code]not A and not B[/code]:
    • [code]not A[/code] 是 [code]False[/code]
    • [code]not B[/code] 是 [code]True[/code]
    • [code]not A and not B[/code] 是 [code]False[/code]

结果是同等的:[code]not(A or B) = False[/code] 和 [code]not A and not B = False[/code]。

示例 2:第二条定律

考虑 [code]A = True[/code] 和 [code]B = False[/code]:

  • 盘算 [code]not(A and B)[/code]:
    • [code]A and B[/code] 是 [code]False[/code]
    • [code]not(A and B)[/code] 是 [code]True[/code]
  • 盘算 [code]not A or not B[/code]:
    • [code]not A[/code] 是 [code]False[/code]
    • [code]not B[/code] 是 [code]True[/code]
    • [code]not A or not B[/code] 是 [code]True[/code]

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

到此这篇关于Python条件分支 if 语句全讲授的文章就先容到这了,更多相关Python条件分支 if 语句内容请搜索脚本之家从前的文章或继承欣赏下面的相关文章盼望各人以后多多支持脚本之家!


来源:https://www.jb51.net/python/328567pmy.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

最新评论

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 19:19 , Processed in 0.032096 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部