首頁 >後端開發 >Python教學 >為什麼 Python 2.x 將帶前導零的數字解釋為八進位?

為什麼 Python 2.x 將帶前導零的數字解釋為八進位?

Patricia Arquette
Patricia Arquette原創
2024-11-26 12:08:09580瀏覽

Why Does Python 2.x Interpret Numbers with Leading Zeros as Octal?

解碼 Python 中神秘的「0」前導數字

當您在 Python 2.7.3當中輸入帶有前導零的小整數時,它們會產生意想不到的結果,例如:

>>> 011
9
>>> 0100
64
>>> 027
23

這個怪癖源自於Python的方式解釋以「0」為前綴的數字。在 Python 2.x 中,這些數字被視為八進位(以 8 為基數)整數。

揭開八進制數

在八進制數字系統中,每個數字代表的冪8. 例如:

  • 011 代表1 x 8^ 1 x 8⁰ = 9
  • 0100代表1 x 8² 0 x 8¹ 0 x 8⁰ = 64
  • 027 代表2 x 8¹ 7 x 8⁰ = 16 7 = 23

與Python 2.7.3 不同,Python 3.0 不會將前導「0」的數字辨識為八進位整數,而是引發錯誤。要在 Python 3 中表示八進位數,必須使用「0o」前綴,例如:

>>> 0o11
9
>>> 0o100
64
>>> 0o27
23
Python 2.x 中的舊版支援

Pyt 2。 x 版本 >= 2.6 支援八進位的舊格式(前導「0」)和新格式(前導「0o」)數字,提供向後相容性。

以上是為什麼 Python 2.x 將帶前導零的數字解釋為八進位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn