鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[快问快答] 第011讲:短路逻辑和运算符优先级

[复制链接]
发表于 2025-9-7 13:39:01 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
@FishC 0 and 3 的结果是?
A. 0
B. 3
C. True
D. False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-7 13:39:45 | 显示全部楼层
达芬奇同学 发表于 2025-09-07 13:39
@FishC 0 and 3 的结果是?
A. 0
B. 3
C. True
D. ...

@FishC 0 and 3 的结果是?


结果是 A. 0。

在 Python 中,and 操作符是逻辑与操作。它会返回第一个假值,或者如果所有值都为真,则返回最后一个真值。这里,0 是假值(因为 0 在布尔上下文中被视为 False),所以 0 and 3 直接返回 0

你可以用以下代码验证:

  1. print(0 and 3)  # 输出 0
复制代码


因此,正确答案是 A. 0。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-18 21:20:11 | 显示全部楼层
@FishC 1 + 2 > 3 - 4 的结果是?
A. True
B. False
C. 1
D. -1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-18 21:20:49 | 显示全部楼层
jieshil 发表于 2025-09-18 21:20
@FishC 1 + 2 > 3 - 4 的结果是?
A. True
B. False ...


表达式 1 + 2 > 3 - 4 的计算过程如下:  
先计算左边:1 + 2 = 3  
再计算右边:3 - 4 = -1  
然后比较:3 > -1,结果为 True。  
因此,答案是 A. True

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-18 21:22:31 | 显示全部楼层
@FishC 0 or 1 and not 2 的结果是?
A. True
B. False
C. 0
D. 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-18 21:23:16 | 显示全部楼层
jieshil 发表于 2025-09-18 21:22
@FishC 0 or 1 and not 2 的结果是?
A. True
B. Fa ...


表达式 0 or 1 and not 2 在 Python 中的计算结果取决于运算符优先级。以下是逐步分析:

1. 运算符优先级: not 最高,然后是 and,最后是 or
2. 先计算 not 2:由于 2 是非零值(视为 True),not 2 返回 False。
3. 然后计算 1 and not 2:即 1 and False,由于 and 返回第一个假值,这里返回 False。
4. 最后计算 0 or False:由于 or 返回第一个真值,但 0 是假值,False 也是假值,因此返回 False。

在 Python 中验证:

  1. >>> 0 or 1 and not 2
  2. False
复制代码


因此,结果是 False,对应选项 B。

答案:B. False

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-21 13:00:58 | 显示全部楼层
@FishC 关于 False or 0 or 4 or 6 or 9,其值是?
A. 0
B. 4
C. 6
D. 9
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-21 13:01:34 | 显示全部楼层
whb杯注册了 发表于 2025-09-21 13:00
@FishC 关于 False or 0 or 4 or 6 or 9,其值是?
A ...


答案:B. 4

解释:在Python中,or 操作符会从左到右求值,并返回第一个为真的值。表达式 False or 0 or 4 or 6 or 9 中,False0 都为假,4 为真(非零整数),因此整个表达式的值为 4。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-28 13:56:30 | 显示全部楼层
@FishC 0 and 3 的结果是?
A. 0
B. 3
C. True
D. False
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-28 13:57:14 | 显示全部楼层
tim0018 发表于 2025-09-28 13:56
@FishC 0 and 3 的结果是?
A. 0
B. 3
C. True
D. ...


表达式 0 and 3 的结果是 A. 0

在 Python 中,逻辑运算符 and 的规则是:如果第一个操作数为假(False),则返回第一个操作数;否则返回第二个操作数。数字 0 在布尔上下文中被视为假,因此 0 and 3 直接返回 0。

选项分析:
- A. 0:正确
- B. 3:错误,因为第一个操作数为假时不会评估第二个
- C. True:错误,结果是一个数字而非布尔值
- D. False:错误,虽然 0 表示假,但运算符返回的是操作数本身

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:18:43 | 显示全部楼层
@FishC not 1 < 2 的结果是?
A. True
B. False
C. 1
D. 2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:19:20 | 显示全部楼层
lucck 发表于 2025-09-29 09:18
@FishC not 1 < 2 的结果是?
A. True
B. False
C. ...


表达式 not 1 < 2 的结果是 False,因此正确答案是 B. False。

解释:在 Python 中,比较运算符优先级高于逻辑运算符,所以先计算 1 < 2 得到 True,然后 not True 等于 False

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:22:28 | 显示全部楼层
@FishC 0 or 1 and not 2 的结果是?
A. True
B. False
C. 0
D. 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:23:14 | 显示全部楼层
lucck 发表于 2025-09-29 09:22
@FishC 0 or 1 and not 2 的结果是?
A. True
B. Fa ...


表达式 0 or 1 and not 2 的结果是 False,因此正确答案是 B. False。

解释如下(基于 Python 的运算符优先级:not > and > or):
- 先计算 not 2,因为 2 是非零值(视为 True),所以 not 2 返回 False
- 然后计算 1 and False,因为 and 运算符在第一个操作数为真时返回第二个操作数,所以返回 False
- 最后计算 0 or False,因为 or 运算符在第一个操作数为假时返回第二个操作数,所以返回 False

因此,整个表达式的结果为 False

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:23:38 | 显示全部楼层
@FishC 以下哪个表达式先进行加法运算?
A. 1 + 2 > 3 - 4
B. 1 + (2 > 3) - 4
C. 1 + 2 * 3
D. 1 - 2 and 3 + 4
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 09:25:41 | 显示全部楼层
lucck 发表于 2025-09-29 09:23
@FishC 以下哪个表达式先进行加法运算?
A. 1 + 2 >  ...


根据运算符优先级,在Python中加法运算(+)的优先级高于比较运算符(如>)和逻辑运算符(如and),但与减法(-)优先级相同且左结合。括号()具有最高优先级。

分析每个选项:
- A. 1 + 2 > 3 - 4:先计算加法 1 + 2 和减法 3 - 4(优先级相同,但从左到右),因此加法先进行。
- B. 1 + (2 > 3) - 4:先计算括号内的比较 2 > 3,然后进行加法,因此加法不是最先。
- C. 1 + 2 * 3:乘法优先级高于加法,因此先进行乘法,然后加法。
- D. 1 - 2 and 3 + 4:算术运算符优先级高于逻辑运算符,因此先计算减法 1 - 2 和加法 3 + 4,但减法先于加法(从左到右),因此加法不是最先。

因此,选项A先进行加法运算。

答案:A

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 10:26:28 | 显示全部楼层
@FishC 关于 False or 0 or 4 or 6 or 9,其值是?
A. 0
B. 4
C. 6
D. 9
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-9-29 10:27:03 | 显示全部楼层
lucck 发表于 2025-09-29 10:26
@FishC 关于 False or 0 or 4 or 6 or 9,其值是?
A ...


表达式 False or 0 or 4 or 6 or 9 的值是 4。

在 Python 中,or 运算符会从左到右返回第一个为真的操作数。这里:
- False0 都是假值,
- 4 是第一个真值(非零整数),因此整个表达式的结果为 4。

所以正确答案是 B. 4。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 10:49 | 显示全部楼层
@FishC 下列表达式中,优先级最高的逻辑运算符是?
A. and
B. or
C. not
D. +
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 10:49 | 显示全部楼层
FERW 发表于 2025-10-18 10:49
@FishC 下列表达式中,优先级最高的逻辑运算符是?
A ...


在Python中,逻辑运算符的优先级从高到低依次是:not > and > or。因此,在给定的选项中,优先级最高的逻辑运算符是 C. not。

例如:

  1. x = True
  2. y = False
  3. # not 运算符先计算
  4. result = not x and y  # 等价于 (not x) and y
  5. print(result)  # 输出 False
复制代码


选项 D. + 是算术运算符,不是逻辑运算符,其优先级高于所有逻辑运算符。但根据问题要求,我们只考虑逻辑运算符,所以正确答案是 C。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-19 12:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表