鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: 小甲鱼

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

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

使用道具 举报

发表于 昨天 10:51 | 显示全部楼层
FERW 发表于 2025-10-18 10:50
@FishC 0 or 4 的结果是?
A. 0
B. 4
C. True
D.  ...


答案:B. 4

在Python中,逻辑运算符 or 会返回第一个为真(truthy)的操作数,如果所有操作数都为假(falsy),则返回最后一个操作数。这里,0 是假值,4 是真值,因此 0 or 4 的结果是 4

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

使用道具 举报

发表于 昨天 11:08 | 显示全部楼层
@FishC 关于 Python 中的 and 和 or 运算符,以下说法正确的是?
A. 它们都遵循短路逻辑
B. 它们总会计算所有操作数
C. 它们不支持短路逻辑
D. 它们只能用于布尔值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 11:09 | 显示全部楼层
FERW 发表于 2025-10-18 11:08
@FishC 关于 Python 中的 and 和 or 运算符,以下说法 ...


正确答案是 A. 它们都遵循短路逻辑。

解释:
在 Python 中,andor 运算符都遵循短路逻辑(short-circuit evaluation),这意味着它们不会总是计算所有操作数:
- 对于 and:如果第一个操作数为假(False),则直接返回第一个操作数,不会计算第二个操作数。
- 对于 or:如果第一个操作数为真(True),则直接返回第一个操作数,不会计算第二个操作数。

因此,选项 B 和 C 是错误的。此外,这些运算符可以用于任何类型的值(不限于布尔值),所以选项 D 也是错误的。

示例代码:

  1. # and 运算符短路示例
  2. x = 0
  3. y = 5
  4. result1 = x and y  # 由于 x 为假,直接返回 x,不计算 y
  5. print(result1)  # 输出 0

  6. # or 运算符短路示例
  7. result2 = x or y   # 由于 x 为假,计算 y 并返回 y
  8. print(result2)  # 输出 5
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-19 10:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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