Python 帶有前導零的奇怪行為
使用Python 時,輸入以0 開頭的小整數時可能會遇到意外結果。異常源自於該語言能夠以 8 為基數解釋這些數字(稱為八進位數)。
具體來說,Python 解釋器將這些前導零視為八進位表示形式的指示。例如,整數 011 被解釋為:
011 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
這解釋了為什麼當您在 Python 解釋器中鍵入「011」時傳回值 9。
但是,此行為是版本-具體的。在 Python 3 中,必須使用「0o」前綴明確表示八進位常數。例如:
0o11 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
在 Python 2.6 及更高版本中,支援舊的(前導 0)和新的(0o 前綴)格式。
總而言之,Python 中的前導零表示八進位數。在 Python 2 中,這些數字只能使用前導零來表示,而在 Python 3 中,需要「0o」前綴。
以上是為什麼 Python 將帶有前導零的數字解釋為八進制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!