Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah Sifar Utama dalam Python 2.x Kadangkala Menghasilkan Nilai Integer Tidak Dijangka?

Mengapakah Sifar Utama dalam Python 2.x Kadangkala Menghasilkan Nilai Integer Tidak Dijangka?

Patricia Arquette
Lepaskan: 2024-11-19 18:34:02
asal
689 orang telah melayarinya

Why Do Leading Zeros in Python 2.x Sometimes Produce Unexpected Integer Values?

Pemalar Octal Curious Python

Apabila menggunakan integer kecil dengan sifar pendahuluan dalam versi Python 2.x sebelum 2.6, hasil yang tidak dijangka mungkin timbul . Integer ini ditafsirkan sebagai nombor perlapanan, sistem asas nombor yang berbeza daripada sistem perpuluhan standard.

Notasi Oktal Dijelaskan

Dalam tatatanda oktal, asasnya ialah 8 dan bukannya 10. Setiap digit mewakili kuasa 8. Contohnya, dalam nombor 011:

  • 1 mewakili 1 * 8¹ (8)
  • 1 mewakili 1 * 8⁰ (1)

Oleh itu, 011 bersamaan dengan 9 inci perpuluhan (8 1 = 9). Begitu juga:

  • 0100 = 1 8² 0 8¹ 0 * 8⁰ = 64
  • 027 = 2 8¹ 7

Python 3 dan Pemalar Oktal

Dalam Python 3, pemalar perlapanan memerlukan awalan eksplisit, 0o, untuk membezakannya daripada integer perpuluhan. Oleh itu, 011 daripada Python 2.x akan ditulis sebagai 0o11 dalam Python 3.

Pengesahan Jenis

Walaupun kelakuannya yang luar biasa, pemalar oktal ini kekal integer dalam Python:

>>> type(027)
<class 'int'>
Salin selepas log masuk

Kepraktikalan Octal Pemalar

Walaupun tatatanda perlapanan adalah perkara biasa pada hari-hari awal pengkomputeran, ia jarang digunakan hari ini. Notasi perpuluhan atau heksadesimal biasanya lebih disukai untuk kebolehbacaan dan keserasian. Adalah penting untuk mengetahui pemalar perlapanan dalam Python 2.x, walau bagaimanapun, untuk memahami potensi kesannya pada tingkah laku kod.

Atas ialah kandungan terperinci Mengapakah Sifar Utama dalam Python 2.x Kadangkala Menghasilkan Nilai Integer Tidak Dijangka?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan