带模运算符的 If 语句

Ano*_*ous 5 python if-statement modulo python-2.7

我尝试过这个 -

x=[2,3,4,7,9]
count=0
for i in x:
  if i%2:
    count=count+1
print count
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 4

2 除以 2 的模为零

>>> 2 % 2
0
Run Code Online (Sandbox Code Playgroud)

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

另一方面,3 对 的模数是 1:

>>> 3 % 2
1
Run Code Online (Sandbox Code Playgroud)

1是一个非零整数,因此被认为是 true。

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

请记住,模数给出了除法的数。2 和 4 可以被 2 整除,因此没有余数。该if测试检查余数。