[解決済み] Pythonの負の数に対するモジュロ演算
2022-07-30 18:04:27
質問
Pythonで負の数に関して奇妙な振る舞いを発見しました。
>>> -5 % 4
3
どなたか説明していただけませんか?
どのように解決するのですか?
CやC++とは異なり、Pythonのモジュロ演算子(
%
)は常に分母(除数)と同じ符号を持つ数を返します。あなたの式が 3 を生成するのは
(-5) / 4 = -1.25 --> floor(-1.25) = -2
(-5) % 4 = (-2 × 4 + 3) % 4 = 3.
これは、非負の結果がより有用であることが多いため、Cの動作よりも選ばれています。例として、曜日を計算することが挙げられます。今日が火曜日(2日目)であれば、週日は何日でしょうか。 N は何日前でしょうか?Pythonでは、次のように計算します。
return (2 - N) % 7
が、C言語では、もし N ≥ 3 の場合、無効な数である負の数が得られるので、手動で 7 を追加して修正する必要があります。
int result = (2 - N) % 7;
return result < 0 ? result + 7 : result;
(参照 http://en.wikipedia.org/wiki/Modulo_operator を参照してください)。
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Pythonの__future__は何に使うのか、いつ、どのように使うのか、その仕組みについて
-
[解決済み] Pythonの関数定義における->の意味とは?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?