ich benutze ipython als interaktive Schell. Dabei kommt es manchmal
vor, dass ich mehrzeilige, eingerückte Statements schreibe:
for i in xrange(10):
print i
die Einrückung bei "print i" erfolgt dabei automatisch, in der nächsten
Zeile muss ich die Einrückung manuell löschen und bekomme den gesamten
Loop ausgeführt.
Wenn ich den über die History (Up-Taste) wieder aufrufe, bekomme ich das
gesamte Statement angezeigt. Wenn ich dann auf "Enter" drücke, kommt der
Fehler
IndentationError: expected an indented block (<ipython console>, line 2)
Wie kann ich mit mehrzeiligen, eingerückten Statements sinnvoll in
ipython arbeiten?
Viele Grüße
Ole
versuche es mit Klammern beim print-Aufruf:
for i in xrange(10):
print(i)
PhilippRautenberg <philipp.r...@googlemail.com> writes:
> On Sep 18, 11:35 am, Ole Streicher <ole-usenet-s...@gmx.net> wrote:
>> for i in xrange(10):
>> print i
>> IndentationError: expected an indented block (<ipython console>, line 2)
>> Wie kann ich mit mehrzeiligen, eingerückten Statements sinnvoll in
>> ipython arbeiten?
> versuche es mit Klammern beim print-Aufruf:
> for i in xrange(10):
> print(i)
Mit Klammern funktioniert es.
Was ist der Grund für dieses etwas eigenartige Verhalten?
Viele Grüße
Ole
> Hallo Phillip,
>
> PhilippRautenberg <philipp.r...@googlemail.com> writes:
>> On Sep 18, 11:35�am, Ole Streicher <ole-usenet-s...@gmx.net> wrote:
>>> for i in xrange(10):
>>> � � print i
>>> IndentationError: expected an indented block (<ipython console>, line 2)
>>> Wie kann ich mit mehrzeiligen, einger�ckten Statements sinnvoll in
>>> ipython arbeiten?
>
>> versuche es mit Klammern beim print-Aufruf:
>
>> for i in xrange(10):
>> print(i)
>
> Mit Klammern funktioniert es.
>
> Was ist der Grund f�r dieses etwas eigenartige Verhalten?
>
> Viele Gr��e
>
> Ole
Planlose Vermutung: Python 3?
(Habe hier nur Python 2.x (mit und ohne iPython), kann es deswegen
nicht testen. Aber 'print als Funktion' ist die erste �nderung die mir
einf�llt wenn ich an Pyxthon3 denke)
Gr��e,
Andreas
Andreas Bruhn <andre...@expires-2009-07-31.arcornews.de> writes:
> Am Mon, 12 Oct 2009 09:56:58 +0200 schrieb Ole Streicher:
>>> On Sep 18, 11:35 am, Ole Streicher <ole-usenet-s...@gmx.net> wrote:
>>>> for i in xrange(10):
>>>> print i
>>>> IndentationError: expected an indented block (<ipython console>, line 2)
>>>> Wie kann ich mit mehrzeiligen, eingerückten Statements sinnvoll in
>>>> ipython arbeiten?
>> Was ist der Grund für dieses etwas eigenartige Verhalten?
> Planlose Vermutung: Python 3?
Nein, ich betreibe ipython unter Python 2.6.
> (Habe hier nur Python 2.x (mit und ohne iPython), kann es deswegen
> nicht testen. Aber 'print als Funktion' ist die erste Änderung die mir
> einfällt wenn ich an Pyxthon3 denke)
Versuche es mal: mehrzeilige Loop mit "print irgendwas" schreiben,
ausführen, per Cursor-Up-Taste erneut anzeigen und wieder ausführen.
Viele Grüße
Ole
Der Bug wird anscheinend von IPythons "autocall"-Feature ausgelöst, das
das "print i" zu "print(i)" umbaut. Warum das passiert, weiß ich allerdings
auch nicht. Du solltest IPython das als Bug melden.
cheers,
Georg
>> (Habe hier nur Python 2.x (mit und ohne iPython), kann es deswegen
>> nicht testen. Aber 'print als Funktion' ist die erste �nderung die mir
>> einf�llt wenn ich an Pyxthon3 denke)
>
> Versuche es mal: mehrzeilige Loop mit "print irgendwas" schreiben,
> ausf�hren, per Cursor-Up-Taste erneut anzeigen und wieder ausf�hren.
Egal ob mit oder ohne %autocall... ich habe hier keine Probleme
(Python 2.4.3 und iPython 0.7.3)
Gr��e,
Andreas
P.S: Bei den Rechnern mit neueren Python-Versionen habe ich derzeit
kein iPython installiert.