0

私はプログラミング言語が初めてで、Pythonも初めてです。

それを説明する 3 つの短いチュートリアルを読んだにもかかわらず、% の重要性を理解するのにまだ苦労しています。

% がこのコードで正確に何をしているのか誰かが分析できますか?

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print n, "=", x, "*", n/x
4

5 に答える 5

4

数値の場合、除算の余りを返します(squiguyが指摘したように)。

10 / 3 は 3 で余りが 1 です。

だから10 % 3 == 1


最も一般的な用途は、割り切れるかどうかをチェックすることです。たとえば、そのループでは、n が x で割り切れるかどうかをチェックします。たとえば、nごとに何かを行うために使用できます。

for i in range(1, 10):
   if i % 3 == 0:
       print "I love cats and dogs"
   else:
       print "I love cats"

出力、

I love cats
I love cats
I love cats and dogs
I love cats
I love cats
I love cats and dogs
I love cats
I love cats
I love cats and dogs
于 2013-08-14T04:47:09.953 に答える
1

この場合の % 演算子はModulo 演算子です

仕様で説明されているように:

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

この場合、除算の余りを見つけています。n / x

コード サンプルは からn=2まで繰り返しn=9ます。各 についてn、内側のループは のすべての約数がn1 より大きいかどうかをチェックします。各約数について、 の因数分解を示す行を出力しnます。

于 2013-08-14T04:46:02.933 に答える
0

% は剰余演算子です。基本的に整数除算演算の剰余を返します。5 % 2 = 15 % 5 = 0など。通常の整数演算では、すべての結果が切り捨てられるため、5 / 2 は 2 を返しますが、2 は 5 倍に収まります。もちろん、0 は特殊なケースであり、ほとんどの言語で未定義の動作をします。

于 2013-08-14T04:40:40.357 に答える