[Python-de] While Schleife
Georg Mischler
schorsch at schorsch.com
Die Apr 26 18:00:01 CEST 2005
Dr. Werner Pessenhofer wrote:
> y = 0
> while y <= 18:
> y = y + 2
> x = X[:,1]
> y1 = X[:,y]
> plot (y1,x,'-')
>
>
> Das erste Spektrum (Spalte 1 und 2 aus dem array) wird noch geplottet,
> allerdings tritt dann folgende Fehlermeldung auf:
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "/usr/tmp/python-25858Gby.py", line 11, in ?
> y1 = X[:,y]
> IndexError: invalid index
> >>> ## working on region in file /usr/tmp/python-258584kB.py...
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "/usr/tmp/python-258584kB.py", line 11, in ?
> y1 = X[:,y]
> IndexError: invalid index
In deinem richtigen Code muss die Reihenfolge anders sein
als im geposteten Beispiel, sonst würde nämlich gar nichts
geplottet. Schon die Zeile x = X[:,1] sollte eigentlich
einen Fehler produzieren.
Nimm das Komma aus der Slice-Spezifikation raus, dann wird
es funktionieren: x = X[:1]
Analog natürlich für alle anderen Slices. Indexwerte innerhalb
von [] dürfen nur aus Ints und : bestehen. Wenn du das Komma bei
einer Liste oder einem String einfügst, dann kriegst du ein
"TypeError: list indices must be integers". Numerical Python
reagiert offenbar mit einem weniger aussagekräftigen IndexError.
-schorsch
--
Georg Mischler -- simulations developer -- schorsch at schorsch com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/