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
Lepaskan: 2024-11-29 20:38:11
asal
917 orang telah melayarinya

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan