You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中两行条件判断代码输出不同的原因咨询

两行Python条件判断代码的差异解析

错误写法的问题

先看这段代码:

if genre == 'Social Networking' or 'Games':

Python中逻辑运算符or会分别判断左右两侧表达式的布尔值:

  • 左侧是genre == 'Social Networking',结果为布尔值(True或False)
  • 右侧是字符串'Games',在布尔语境下,非空字符串永远被视为True

所以不管genre的值是什么,右侧的'Games'始终为True,整个or表达式的结果永远是True。这会导致循环里所有行的rating都被添加到games_social_ratings列表中,计算出的平均值是所有App的评分均值,而非仅社交网络类和游戏类的。

正确写法的逻辑

再看正确的代码:

if genre == 'Social Networking' or genre == 'Games':

这里or的两侧都是完整的比较表达式:

  • 左侧判断genre是否等于'Social Networking'
  • 右侧判断genre是否等于'Games'

只有当genre满足其中任意一个条件时,整个表达式才为True,此时对应的rating才会被加入列表。这样计算出的平均值才是目标类别App的评分均值。

补充:完整代码中的语法错误

你提供的完整代码里写了:

if genre == 'Social Networking' or == 'Games':

这是语法错误,== 'Games'前面缺少了比较对象genre,Python解释器会直接报错,无法运行。

内容的提问来源于stack exchange,提问作者Maestro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:20:28