Rumah >pembangunan bahagian belakang >Tutorial Python >Bilakah Pembahagian Integer dalam Teka-teki Python Anda?
Bahagian Integer dalam Python: A Conundrum
Operasi pembahagian dalam Python boleh membawa kepada hasil yang tidak dijangka apabila integer negatif terlibat. Ungkapan berikut:
<code class="python">8 / -7</code>
mengembalikan hasil mengejutkan -2. Keputusan ini mungkin kelihatan berlawanan dengan intuisi, kerana seseorang mungkin menjangkakan operasi aritmetik mudah menghasilkan nombor nyata negatif.
Memahami Tingkah Laku
Penjelasan untuk tingkah laku ini terletak pada konsep "pembahagian lantai" dalam Python. Tidak seperti dalam matematik, di mana pembahagian sentiasa menghasilkan nombor nyata, pembahagian integer dalam Python membundarkan hasilnya ke nombor bulat terdekat. Kesan "lantai" ini bertanggungjawab untuk hasil integer negatif yang mengejutkan.
Dalam kes ini, operasi 8 / -7 sebenarnya mengira 8.0 / (-7.0), iaitu lebih kurang -1.143. Walau bagaimanapun, disebabkan pembahagian integer, hasilnya dibundarkan ke bawah kepada -2.
Implikasi dan Penyelesaian
Tingkah laku ini boleh membawa kepada keputusan yang membingungkan, terutamanya apabila mencampurkan positif dan integer negatif dalam operasi bahagi. Contohnya:
<code class="python">8 / 7 # Returns 1 8 / -7 # Returns -2</code>
Dalam Python 3, kebiasaan ini telah ditangani dengan memperkenalkan pengendali yang berbeza untuk pembahagian integer, dilambangkan dengan //. Menggunakan operator ini memastikan bahawa hasilnya sentiasa integer, seperti dalam tingkah laku Python 2.
<code class="python">8 // -7 # Returns -2</code>
Kesimpulan
Hasil mengejutkan pembahagian integer negatif dalam Python berpunca daripada konsep pembahagian lantai, yang membundarkan hasil ke bawah kepada integer terdekat. Untuk mengelakkan hasil yang tidak dijangka ini, pertimbangkan perkara berikut:
Atas ialah kandungan terperinci Bilakah Pembahagian Integer dalam Teka-teki Python Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!