Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ipython History und Indention

0 views
Skip to first unread message

Ole Streicher

unread,
Sep 18, 2009, 5:35:27 AM9/18/09
to
Hallo,

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

PhilippRautenberg

unread,
Oct 9, 2009, 6:24:32 AM10/9/09
to

versuche es mit Klammern beim print-Aufruf:

for i in xrange(10):
print(i)

Ole Streicher

unread,
Oct 12, 2009, 3:56:58 AM10/12/09
to
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

Andreas Bruhn

unread,
Oct 12, 2009, 6:18:47 AM10/12/09
to
Am Mon, 12 Oct 2009 09:56:58 +0200 schrieb Ole Streicher:

> 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

Ole Streicher

unread,
Oct 13, 2009, 3:04:02 AM10/13/09
to
Hallo 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

Georg Brandl

unread,
Oct 13, 2009, 3:54:39 PM10/13/09
to
Ole Streicher schrieb:

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

Andreas Bruhn

unread,
Oct 15, 2009, 5:23:00 AM10/15/09
to
Am Tue, 13 Oct 2009 09:04:02 +0200 schrieb Ole Streicher:

>> (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.

0 new messages