ホームページ > バックエンド開発 > Python チュートリアル > Python のモジュロ演算子が負の数で正の結果を生成するのはなぜですか?

Python のモジュロ演算子が負の数で正の結果を生成するのはなぜですか?

DDD
リリース: 2024-11-29 20:38:11
オリジナル
986 人が閲覧しました

Why Does Python's Modulo Operator Produce a Positive Result with Negative Numbers?

負の数値を使用した Python モジュロ演算子の動作

Python のモジュロ演算子 (%) は、C や C とは異なる方法で負の数値を処理します。これらの言語とは異なり、Python のモジュロ演算子は、結果が分母と同じ符号を持つことを常に保証します。

-5 % 4 が -1 ではなく 3 と評価される理由

式 -5 % 4 を考えてみましょう。この場合、計算は次のように行われるため、3 と評価されます。

  • (-5) / 4 = -1.25 (浮動小数点除算)
  • Floor(-1.25) = -2 (小数部の削除)
  • (-5) % 4 = (-2 × 4 3) % 4 = 3

Python は、一般に負でない結果の方が便利であるため、この動作を選択します。たとえば、式 (2 - N) % 7 を使用して曜日を計算する場合、モジュロ演算子により、結果が曜日を表す [0, 6] の範囲内に収まることが保証されます。

C の動作との対比

C では、この式で N が 3 以上の場合、結果は負になります。有効な日数ではありません。正しい結果を得るには、C では負の結果に 7 を加算して手動で調整する必要があります。

さまざまな言語での負の数を使用したモジュロ演算子の動作の詳細については、モジュロに関する Wikipedia の記事を参照してください。演算子。

以上がPython のモジュロ演算子が負の数で正の結果を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート