Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Python Mentafsir Nombor dengan Sifar Utama sebagai Oktal?

Mengapa Python Mentafsir Nombor dengan Sifar Utama sebagai Oktal?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 03:34:26308semak imbas

Why Does Python Interpret Numbers with Leading Zeros as Octal?

Gelagat Ingin Tahu Python dengan Sifar Utama

Apabila bekerja dengan Python, anda mungkin menghadapi hasil yang tidak dijangka semasa memasukkan integer kecil yang bermula dengan 0. Ini anomali berpunca daripada keupayaan bahasa untuk mentafsir nombor ini dalam asas 8, yang dikenali sebagai oktal nombor.

Secara khusus, jurubahasa Python menganggap sifar pendahuluan ini sebagai petunjuk bagi perwakilan perlapanan. Sebagai contoh, integer 011 ditafsirkan sebagai:

011 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)

Ini menerangkan sebab nilai 9 dikembalikan apabila anda menaip "011" ke dalam penterjemah Python.

Walau bagaimanapun, tingkah laku ini adalah versi -khusus. Dalam Python 3, anda mesti menyatakan secara eksplisit pemalar oktal dengan menggunakan awalan "0o". Contohnya:

0o11 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)

Dalam Python 2.6 dan versi yang lebih baru, kedua-dua format lama (0 pendahuluan) dan baharu (0o awalan) disokong.

Untuk meringkaskan, sifar pendahuluan dalam Python menunjukkan nombor perlapanan. Dalam Python 2, nombor ini boleh diwakili hanya menggunakan sifar pendahuluan, manakala dalam Python 3, awalan "0o" diperlukan.

Atas ialah kandungan terperinci Mengapa Python Mentafsir Nombor dengan Sifar Utama sebagai Oktal?. 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