0

我确定这是非常基本的,我应该理解它,但我不明白!

我被赋予这样做:

循环并以接收到的相同顺序打印出数字列表中的所有偶数。不要打印序列中 237 之后的任何数字。

这是我为这些数字准备的程序。

numbers = [
    951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 
    615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
    958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 
    743, 527
]

# your code goes here
for x in numbers:
    if x % 2 == 0:
        print x
    if x == 237:
        break

我得到了正确的解决方案,一切都正确,但我不知道 ==0 有什么用。我使用它的唯一原因是因为它在练习前的课程中用于另一个示例!

4

3 回答 3

11

x % 2给出整数除法后的余数(当仅处理整数时,例如在这种情况下,否则为常见类型x/2%称为模运算符。当然,当余数为 0 时,这个数是偶数。

文档

(%模) 运算符从第一个参数除以第二个参数产生余数。数字参数首先转换为通用类型。零右参数会引发ZeroDivisionError异常。参数可以是浮点数,例如,3.14%0.7等于0.34(因为3.14等于4*0.7 + 0.34)。模运算符总是产生与它的第二个操作数(或零)具有相同符号的结果。结果的绝对值严格小于第二个操作数的绝对值 [2]。

于 2013-04-21T09:20:34.783 回答
6

if x % 2 == 0检查一个数字是否是偶数。

x % 21奇数0时,偶数时。

于 2013-04-21T09:20:37.877 回答
1

== 0意思是“等于 0(零)”。Soif foo == 0:表示“如果foo等于 0,则执行以下操作”,因此if x % 2 == 0:意味着“如果等于 0,请执行以下操作x % 2”。

于 2013-04-21T09:21:09.293 回答