Heim >Backend-Entwicklung >Python-Tutorial >Warum interpretiert Python 2.x Zahlen mit führenden Nullen als Oktalzahlen?

Warum interpretiert Python 2.x Zahlen mit führenden Nullen als Oktalzahlen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 12:08:09583Durchsuche

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

Entschlüsselung der mysteriösen führenden „0“-Zahlen in Python

Wenn Sie kleine ganze Zahlen mit einer führenden Null in Python 2.7.3 eingeben, werden sie führen zu unerwarteten Ergebnissen, wie zum Beispiel:

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

Diese Eigenart ergibt sich aus der Art und Weise, wie Python vorangestellte Zahlen interpretiert mit „0“. In Python 2.x werden diese Zahlen als oktale Ganzzahlen (Basis 8) betrachtet.

Enthüllung der Oktalzahlen

Im oktalen Zahlensystem stellt jede Ziffer Potenzen von dar 8. Zum Beispiel:

  • 011 steht für 1 x 8¹ 1 x 8⁰ = 9
  • 0100 steht für 1 x 8² 0 x 8¹ 0 x 8⁰ = 64
  • 027 steht für 2 x 8¹ 7 x 8⁰ = 16 7 = 23

Python 3 Moderner Ansatz

Im Gegensatz zu Python 2.7.3 erkennt Python 3.0 Zahlen mit führender „0“ nicht als oktale Ganzzahlen und löst stattdessen einen Fehler aus. Um Oktalzahlen in Python 3 darzustellen, muss man das Präfix „0o“ verwenden, z. B.:

>>> 0o11
9
>>> 0o100
64
>>> 0o27
23

Legacy Support in Python 2.x

Python 2. x-Versionen >= 2.6 unterstützen sowohl das alte Format (führende „0“) als auch das neue Format (führende „0o“) für Oktalzahlen, Bereitstellung von Abwärtskompatibilität.

Das obige ist der detaillierte Inhalt vonWarum interpretiert Python 2.x Zahlen mit führenden Nullen als Oktalzahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn