Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Operator Modulo Python Menghasilkan Keputusan Positif dengan Nombor Negatif?

Mengapa Operator Modulo Python Menghasilkan Keputusan Positif dengan Nombor Negatif?

DDD
DDDasal
2024-11-29 20:38:11919semak imbas

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

Gelagat Operator Modulo Python dengan Nombor Negatif

Operator modulo (%) dalam Python mengendalikan nombor negatif secara berbeza daripada dalam C atau C . Tidak seperti bahasa tersebut, pengendali modulo Python sentiasa memastikan bahawa hasilnya mempunyai tanda yang sama dengan penyebut.

Mengapa -5 % 4 Menilai kepada 3, Bukan -1

Pertimbangkan ungkapan -5 % 4. Dalam kes ini, ia menilai kepada 3 kerana pengiraan diteruskan sebagai berikut:

  • (-5) / 4 = -1.25 (bahagian titik terapung)
  • Tingkat(-1.25) = -2 (buang bahagian pecahan)
  • (-5) % 4 = (-2 × 4 3) % 4 = 3

Python memilih gelagat ini kerana hasil bukan negatif biasanya lebih berguna. Contohnya, apabila mengira hari minggu menggunakan formula (2 - N) % 7, pengendali modulo memastikan keputusan berada dalam julat [0, 6], mewakili hari dalam seminggu.

Berbeza dengan Gelagat C

Dalam C, jika N lebih besar daripada atau sama dengan 3 dalam formula ini, hasilnya akan negatif, iaitu bukan nombor hari yang sah. Untuk mendapatkan hasil yang betul, C memerlukan pelarasan manual dengan menambah 7 pada hasil negatif.

Untuk maklumat lanjut tentang kelakuan pengendali modulo dengan nombor negatif dalam bahasa berbeza, sila rujuk artikel Wikipedia tentang modulo pengendali.

Atas ialah kandungan terperinci Mengapa Operator Modulo Python Menghasilkan Keputusan Positif dengan Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn