Heim >Backend-Entwicklung >Python-Tutorial >Warum führen führende Nullen in Python-Ganzzahlen zu unerwartetem Verhalten?

Warum führen führende Nullen in Python-Ganzzahlen zu unerwartetem Verhalten?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 18:04:11444Durchsuche

Why Do Leading Zeros in Python Integers Result in Unexpected Behavior?

Präfix-Nullen in Python-Ganzzahlen verstehen

Wenn in Python Zahlen mit einer führenden Null eingegeben werden, verhalten sie sich anders als reguläre ganze Zahlen. Dies liegt daran, dass diese Zahlen als Oktalzahlen (Basis 8) interpretiert werden.

Eine Oktalzahl besteht aus Ziffern im Bereich von 0 bis 7. Wenn Python auf eine Zahl trifft, die mit 0 beginnt, wandelt es diese automatisch in eine Oktalzahl um. Dies kann zu unerwarteten Ergebnissen führen, da der Zahlenwert von der erwarteten Dezimaldarstellung abweicht.

Beispiele in Python 2 (altes Format)

  • 011: Diese Zahl wird in 1 8¹ 1 8⁰ = 9 in der Basis umgewandelt 10.
  • 0100: Diese Zahl wird in 1 8² 0 8¹ 0 * 8⁰ = 64 zur Basis 10 umgewandelt.
  • 027: Diese Zahl wird in 2 8¹ umgewandelt 7 8⁰ = 23 in der Basis 10.

Python 3 (Neues Format)

In Python 3 muss das Präfix „0o“ verwendet werden, um eine Oktalkonstante anzugeben. Dies hilft, Oktalzahlen klarer von Dezimalzahlen zu unterscheiden.

  • 0o11: Diese Zahl wird in 1 8¹ 1 8⁰ = 9 zur Basis 10 umgewandelt.
  • 0o100: Diese Zahl wird in 1 8² 0 umgerechnet 8¹ 0 * 8⁰ = 64 zur Basis 10.
  • 0o27: Diese Zahl wird in 2 8¹ 7 8⁰ = 23 zur Basis 10 umgewandelt.

Das ist wichtig Verstehen Sie dieses Verhalten, um potenzielle Fehler in Ihrem Code zu vermeiden. Stellen Sie stets sicher, dass numerische Werte korrekt eingegeben werden, und beachten Sie die unterschiedlichen Formate zur Darstellung von Oktalzahlen in Python.

Das obige ist der detaillierte Inhalt vonWarum führen führende Nullen in Python-Ganzzahlen zu unerwartetem Verhalten?. 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