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/