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!