带有模运算符的 If 语句

新手上路,请多包涵

我试过这个 -

 x=[2,3,4,7,9]
count=0
for i in x:
  if i%2:
    count=count+1
print count

为什么计数是 3 而不是 2 ,因为 i%2 只满足“2 和 4”?

原文由 Anonamous 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 322
1 个回答

2 对 2 的模数 _为零_:

 >>> 2 % 2
0

所以 2 % 2 产生 0 ,这是一个假值,因此 if 语句 匹配。

另一方面,3 的模数为 1:

 >>> 3 % 2
1

1 是一个非零整数,因此被认为是真实的。

换句话说, if i%2: 测试匹配 奇数,而不是偶数。您的列表中有 3 个奇数。

请记住,模数为您提供除法的 _余数_。 2和4可以被2整除,所以没有余数。 if 测试检查余数。

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题