
Hallo zusammen,
wie immer mit den einfachen Sachen im Leben, man möchte schnell etwas überprüfen und schwupps -- stößt man auf eine Sache, die immer unerklärlicher wird. Folgendes bereitet mir Kopfzerbrechen:
line = 001001001 type(line)
<type 'int'>
print line[0:2]
Traceback (innermost last): File "<stdin>", line 1, in ? TypeError: unsliceable object
line = str(001001001) type(line)
<type 'string'>
print line[0:2]
26
print line
262657
Vielleicht isses ja ganz einfach, aber ich komme nicht drauf.
Gruss, Andreas

On Fri, 26 Sep 2003, Andreas Grytz wrote:
Hallo zusammen,
wie immer mit den einfachen Sachen im Leben, man m�chte schnell etwas �berpr�fen und schwupps -- st��t man auf eine Sache, die immer unerkl�rlicher wird. Folgendes bereitet mir Kopfzerbrechen:
line = 001001001 type(line)
<type 'int'>
print line[0:2]
Traceback (innermost last): File "<stdin>", line 1, in ? TypeError: unsliceable object
line = str(001001001)
001001001 wird als Oktalzahl interpretiert (=262657= ~
type(line)
<type 'string'>
print line[0:2]
26
print line
262657
Vielleicht isses ja ganz einfach, aber ich komme nicht drauf.
Gruss, Andreas
MfG Rene
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

---------- Andreas Grytz schreibt am Freitag, 26. September 2003 11:18:
Hallo zusammen,
wie immer mit den einfachen Sachen im Leben, man möchte schnell etwas überprüfen und schwupps -- stößt man auf eine Sache, die immer unerklärlicher wird. Folgendes bereitet mir Kopfzerbrechen:
line = 001001001
wie wär's mit
line = '001001001'
Gruß, Dieter
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

On Fri, Sep 26, 2003 at 11:32:25AM +0200, Rene Liebscher wrote:
On Fri, 26 Sep 2003, Andreas Grytz wrote:
Hallo zusammen,
wie immer mit den einfachen Sachen im Leben, man möchte schnell etwas überprüfen und schwupps -- stößt man auf eine Sache, die immer unerklärlicher wird. Folgendes bereitet mir Kopfzerbrechen:
line = 001001001 type(line)
<type 'int'>
print line[0:2]
Traceback (innermost last): File "<stdin>", line 1, in ? TypeError: unsliceable object
line = str(001001001)
001001001 wird als Oktalzahl interpretiert (=262657= ~
Vielen Dank für die Antworten. Ein paar gingen direkt an mich, sind daher hier nicht zu sehen.
OK, das verstehe ich und konnte ich so nachvollziehen. Vielleicht noch eine Anschlußfrage: Warum interpretiert er die Zeichenkette als Oktalzahl? Bei dem Beispiel könnte es ja auch eine Binärzahl sein?
Gruss, Andreas

Schau mal unter http://www.python.org/doc/current/ref/integers.html nach.
On Friday 26 September 2003 11:56, Andreas Grytz wrote:
On Fri, Sep 26, 2003 at 11:32:25AM +0200, Rene Liebscher wrote:
On Fri, 26 Sep 2003, Andreas Grytz wrote:
Hallo zusammen,
wie immer mit den einfachen Sachen im Leben, man möchte schnell etwas überprüfen und schwupps -- stößt man auf eine Sache, die immer
unerklärlicher wird. Folgendes bereitet mir Kopfzerbrechen:
line = 001001001 type(line)
<type 'int'>
print line[0:2]
Traceback (innermost last): File "<stdin>", line 1, in ? TypeError: unsliceable object
line = str(001001001)
001001001 wird als Oktalzahl interpretiert (=262657= ~
Vielen Dank für die Antworten. Ein paar gingen direkt an mich, sind daher hier nicht zu sehen.
OK, das verstehe ich und konnte ich so nachvollziehen. Vielleicht noch eine Anschlußfrage: Warum interpretiert er die Zeichenkette als Oktalzahl? Bei dem Beispiel könnte es ja auch eine Binärzahl sein?
Gruss, Andreas
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

On Freitag, 26. September 2003 11:56, Andreas Grytz wrote:
OK, das verstehe ich und konnte ich so nachvollziehen. Vielleicht noch eine Anschlußfrage: Warum interpretiert er die Zeichenkette als Oktalzahl? Bei dem Beispiel könnte es ja auch eine Binärzahl sein?
Das hat AFAIK historische (UNIX) Gründe. Macht die bash (sh?) genauso.
Regeln: Fängt mit 0 an -> Oktalzahl Fängt mit 0x an -> Hexadezimalzahl Rest Dezimalzahl
Für Binär gibt es AFAIR keinen Anfang.
-Falk
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
Andreas Grytz
-
Dieter Neubauer
-
Falk Friedrich
-
Rene Liebscher
-
Stephan Diehl