Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Python 3 Melakukan Pembahagian Titik Terapung Daripada Pembahagian Integer?

Mengapa Python 3 Melakukan Pembahagian Titik Terapung Daripada Pembahagian Integer?

Barbara Streisand
Barbara Streisandasal
2024-12-14 18:27:16930semak imbas

Why Does Python 3 Perform Floating-Point Division Instead of Integer Division?

Mengapa Python Melakukan Pembahagian Titik Terapung untuk Pembahagian Integer

Dalam versi terbaru Python (3 dan seterusnya), pembahagian integer (membahagikan dua integer) menghasilkan apungan dan bukannya integer. Tingkah laku ini berbeza daripada versi terdahulu, yang mengutamakan keputusan integer untuk operan integer.

Pertimbangkan bahagian berikut dalam Python 3:

>>> 2 / 2
1.0

Hasil yang mengejutkan ini boleh menyebabkan kekeliruan, terutamanya jika anda terbiasa dengan versi Python yang lebih lama.

Alasan Di Sebalik Perubahan

Rasional untuk perubahan ini didokumenkan dalam PEP-238: Menukar Operator Bahagian. Cadangan ini bertujuan untuk:

  • Memperkenalkan pembahagian lantai yang tidak jelas, dilambangkan oleh operator //.
  • Menghapuskan potensi penukaran jenis yang tidak diingini dan ralat pusing-balik dengan operan jenis bercampur.

Implikasi untuk Kod Anda

Perubahan ini mempunyai beberapa implikasi untuk kod Python anda:

  • Jika anda memerlukan pembahagian integer (dibundarkan ke arah sifar), gunakan operator // secara eksplisit.
  • Jika anda menjangkakan hasil apungan, pemutus tidak diperlukan.
  • Untuk kebolehbacaan maksimum, pertimbangkan untuk menggunakan operator // dan / dengan bijak untuk menyampaikan niat anda dengan jelas.

Contoh:

# Explicit floor division
result = 2 // 2  # 1

# Float division
result = 2 / 2  # 1.0

Sumber Tambahan

  • [PEP-238: Menukar Operator Bahagian](https://www. python.org/dev/peps/pep-0238/)

Atas ialah kandungan terperinci Mengapa Python 3 Melakukan Pembahagian Titik Terapung Daripada Pembahagian Integer?. 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