it-swarm.com.de

Wie schreibe ich Code mit mehr als einer Zeile im Python-Interpreter?

Ich habe ein Problem beim Codieren von Python im Terminal. Ich lerne nur Grundlagen, damit ich keine .py-Dateien erstellen muss.

Im Terminal kann ich im Python-Interpreter eine Codezeile ausführen, aber wie schreibe ich mehr als eine Zeile?

Wenn ich die Eingabetaste drücke, wird der Befehl eingegeben, und es wird keine Zeile weitergegangen.

Ich möchte nur folgendes im Terminal testen:

my_age = 35
my_eyes = 'Blue'
print "my age is %d and my eye color is %s" % (my_age, my_eyes)
30
user98645

Fügen Sie einen abschließenden Backslash hinzu (\)

Der Trick ist - ähnlich wie Sie es zum Beispiel in bash tun würden - einen abschließenden Backslash hinzuzufügen. Wenn ich zum Beispiel einen 1 ausdrucken möchte:

charon:~ werner$ python
>>> print 1
1
>>> print \
... 1
1
>>> 

Wenn Sie einen \ schreiben, fordert Python Sie mit ... (Fortsetzungszeilen) auf, sozusagen Code in die nächste Zeile einzugeben.

Randnotiz: Dies geschieht automatisch, wenn Sie eine Funktion oder Klassendefinition erstellen, dh wenn Sie wirklich eine neue Zeile benötigen , sodass es nie eine gibt Das kann man wirklich gut gebrauchen, oder zumindest keine, die ich kenne. Mit anderen Worten, Python ist intelligent genug, um zu wissen, dass Sie beim Eingeben einer neuen Funktionsdefinition oder anderer ähnlicher Konstrukte (z. B. if:) Fortsetzungszeilen benötigen. Beachten Sie in diesen automatischen Fällen, dass Sie mit \ eine leere Zeile eingeben müssen, um Python mitzuteilen, dass Sie fertig sind.

Für alles andere müssen Sie eine Zeile nach der anderen schreiben. Die Art und Weise, wie ein Interpreter arbeitet, ist, dass er jede Zeile interpretiert, die Sie ihm zuführen. Nicht mehr und nicht weniger. Es wird nur "handeln", wenn eine neue Zeile angezeigt wird, und fordert den Interpreter daher auf, das auszuführen, was Sie ihm gegeben haben. Der einfache Backslash verhindert, dass der Interpreter jemals ein Newline-Zeichen erhält (d. H., Er weiß nicht, dass Sie tatsächlich gedrückt haben Enter), aber es wird schließlich eine erhalten.

Pythons Interpreter verfügt über erweiterte Funktionen , wenn Sie GNU readline verwenden, z. B. Emacs oder vi-artige Tastenkombinationen, um innerhalb einer Zeile zu navigieren (z. Ctrl-A). Die funktionieren aber nur in der einen aktuellen Zeile. Die Geschichte ist auch da, versuchen Sie es und drücken Sie .

Was ist, wenn ich komplizierte Zeilen immer wieder ausführen möchte?

Sie möchten wahrscheinlich die richtigen Quelldateien verwenden, wenn Sie mehr als eine Codezeile gleichzeitig ausführen möchten.

Oder verwenden Sie Jupyter-Notizbücher , das eine großartige interaktive Möglichkeit zum Erstellen von Python-Code mit einem integrierten Interpreter bietet. Sie können Code wie in einem Quellcode-Editor schreiben, aber Sie können auswählen, welche Zeilen zusammen interpretiert werden. Sie können dann nur Teile des Codes selektiv ausführen. Der beste Weg ist, einfach zu versuchen, herauszufinden, ob das zu Ihrem Workflow passt.

30
slhck

Wie wäre es mit ;\? Das Semikolon signalisiert das Ende eines Befehls und der Backslash signalisiert, dass wir in der nächsten Zeile fortfahren. Geben Sie beispielsweise python in die Befehlszeile ein, um in den Python-Interpreter zu gelangen

>>> x=0 ;\
... print(x) ;\
... x=4 ;\
... print(x)

sollte eine Ausgabe von geben

0
4
6
Garrett

Einfach ausgedrückt, wenn Sie lernen und mehr als eine Zeile ausführen möchten, schreiben Sie diese in eine .py-Datei.

Die Methode mit abschließendem Backslash ist gut, wenn Sie schnell eine Reihe von Befehlen ausführen möchten, aber sie hilft nicht, wenn Sie lernen.

Sie können Code besser entwickeln, einzelne Befehle bearbeiten, ohne sich um Rechtschreibfehler kümmern zu müssen, und Code-Schnipsel wiederverwenden, die Sie nützlich finden, wenn Sie sie in eine kleine Datei schreiben.

2
Rory Alsop

An meiner Shell-Eingabeaufforderung habe ich gerade Folgendes eingegeben, und es hat einwandfrei funktioniert:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> my_age = 35
>>> my_eyes = 'Blue'
>>> print "my age is %d and my eye color is %s" % (my_age, my_eyes)
my age is 35 and my eye color is Blue
>>> 

Die Möglichkeit, mehr als eine Codezeile im interaktiven Python-Interpreter einzugeben, besteht darin, mehr als eine Codezeile im interaktiven Python-Interpreter einzugeben. Ich würde denken, das wäre gut genug für Ihre Zwecke.

Es ist richtig, dass Sie nach jeder Zeile eine neue Eingabeaufforderung erhalten. Wenn also zwei Ihrer Codezeilen eine Ausgabe erzeugen, wird diese Ausgabe durch Eingabeaufforderungen getrennt. Ich denke, das ist es, worüber Sie sich Sorgen machen, obwohl das Beispiel in Ihrer Frage nicht nahe legt, dass:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "first line"
first line
>>> print "second line"
second line
>>> 

Wenn das ein Problem ist, können Sie Ihre mehreren Anweisungen in eine (richtig eingerückte!) if-Anweisung einschließen:

$ python
Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> if 1:
...     print "first line"
...     print "second line"
... 
first line
second line
>>> 

(Ich würde vorschlagen, auch wenn es Ihre Frage nicht beantwortet, wenn Sie Code schreiben, der so komplex ist, dass es darauf ankommt, sollten Sie Skripte schreiben. Vielleicht haben Sie in den anderthalb Jahren damit begonnen seit du die frage gepostet hast.)

1
Keith Thompson

Ich habe gerade die Antwort durchgearbeitet, die Sie erhalten haben. Ich habe weiter experimentiert, indem ich verschiedene Symbole eingesetzt habe. Endlich habe ich die richtige Syntax, um sie zu schreiben

print("more string") ; print(3)

dies gibt Ihnen ein Ergebnis

more string

3

ohne fehler

ich habe gerade ';' um es in eine andere Zeile schreiben zu lassen

ich hoffe, meine Antwort kann Ihnen helfen

0
Curious Blade

Verlassen Sie einfach die Shell und öffnen Sie eine neue Editor-Datei. Das heißt gehe zur Datei und öffne eine neue Datei. Schreiben Sie so viele Codezeilen, wie Sie möchten.

0
Hemant Gautam