AW: [Python-de] Rätselhaftes String-Verhalten
Rainer Fischbach
fischbach at ecs-gmbh.de
Fre Sep 26 13:03:59 CEST 2003
-----Ursprüngliche Nachricht-----
Von: Andreas Grytz [mailto:agrytz at linux-user.de]
Gesendet: Freitag, 26. September 2003 11:18
An: python-de at python.net
Betreff: [Python-de] Rätselhaftes String-Verhalten
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.
....
Es ist ganz einfach:
1. ein int ist nicht sliceable, d.h. keine Folge von Dezimalziffern, aus denen Du einzelne herausgreifen könntest. Unmittelbar könntest Du höchstens (mittels & und einem Muster) Bits herausgreifen.
2. wenn int-Litarale eine führende 0 aufweisen, onterpretiert Python sie als Oktaldarstellungen
Rainer Fischbach
Senior Consultant
ECS Engineering Consulting & Solutions GmbH
Mühlstraße 3
D-92318 Neumarkt
Fon +49 9181 4764-84
Fax +49 9181 4764-50
email fischbach at ecs-gmbh.de
http://www.ecs-international.de/