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のときは偶数です。

ドキュメント:

(%モジュロ) 演算子は、最初の引数を 2 番目の引数で割った余りを返します。数値引数は最初に共通の型に変換されます。右の引数がゼロの場合、ZeroDivisionError例外が発生します。3.14%0.7引数は、 equalsなどの浮動小数点数にすることができます0.34( 3.14equalsであるため4*0.7 + 0.34)。モジュロ演算子は常に、2 番目のオペランドと同じ符号 (またはゼロ) の結果を返します。結果の絶対値は、第 2 オペランドの絶対値より厳密に小さくなります [2]。

于 2013-04-21T09:20:34.783 に答える
6

if x % 2 == 0数値が偶数かどうかを調べます。

x % 21奇数のときと偶数の0ときです。

于 2013-04-21T09:20:37.877 に答える