【问题标题】:Query about IF statements [duplicate]查询 IF 语句 [重复]
【发布时间】:2019-10-22 20:04:54
【问题描述】:
opened_file = open('AppleStore.csv')
from csv import reader
read_file = reader(opened_file)
apps_data = list(read_file)

games_social_ratings = []
for row in apps_data[1:]:
    rating = float(row[7])
    genre = row[11]
    if genre=='Games'or 'Social Networking':
        games_social_ratings.append(rating)
print(len(games_social_ratings))
print(len(apps_data))

我正在学习一个在线编码课程,该课程会导入大量有关应用商店应用的数据,并要求我们计算游戏或社交网络应用的平均评分。这样做时,我不小心输入了如上所示的 if 语句:

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

这是我不明白的,总共有7197个应用程序,如果我使用上面的IF语句,我的games_social_rating列表的长度是7197。游戏应用程序总数是3862,社交网络应用程序总数是167. 7197这个数字是从哪里来的?当我输入上面的代码时,有人能告诉我电脑在做什么吗?我原以为会出现错误。

我唯一的理由是“社交网络”注册为一个真实的陈述,因此因为这句话

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

读取 如果genre=='games' 或为真:

在这种情况下,它将追加列表中的每个项目。但为什么它会是一个真实的陈述呢?

【问题讨论】:

  • 你可能想要if genre in ('Games', 'Social Networking',) 相当于if genre == 'Games' or genre == 'Social Networking'?

标签: python


【解决方案1】:

Python 中的所有非空字符串都被认为是真值。

是的,if genre == 'Games' or 'Social Networking':

等同于if genre == 'Games' or True:

它的计算结果总是if True:

【讨论】:

    猜你喜欢
    • 2012-07-16
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多