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

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

Ich habe ein Problem mit der Python-Codierung im Terminal. Ich lerne gerade erst die Grundlagen, daher muss ich keine .py-Dateien erstellen.

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

Wenn ich die Eingabetaste drücke, wird der Befehl natürlich eingegeben und nicht eine Zeile weiter verschoben.

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)

Antwort1

Fügen Sie am Ende einen Backslash ( \) hinzu.

Der Trick besteht darin, – ähnlich wie Sie es bashbeispielsweise in tun würden – einen abschließenden Backslash hinzuzufügen. Wenn ich beispielsweise ein drucken möchte 1:

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

Wenn Sie eine schreiben \, fordert Python Sie mit ...(Fortsetzungszeilen) sozusagen auf, Code in der nächsten Zeile einzugeben.

Randbemerkung: Dies passiert automatisch, wenn Sie eine Funktion oder Klassendefinition erstellen, d. h. die Zeiten, in denen Sie wirklichbraucheneine neue Zeile, also gibt es dafür nie einen wirklich guten Zweck, zumindest keinen, den ich kenne. Mit anderen Worten: Python ist intelligent genug, um zu wissen, dass Sie Fortsetzungszeilen benötigen, wenn Sie eine neue Funktionsdefinition oder andere ähnliche Konstrukte eingeben (z. B. if:). Beachten Sie in diesen automatischen Fällen, dass Sie 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 Funktionsweise eines Interpreters besteht darin, dass er jede Zeile interpretiert, die Sie ihm zuführen. Nicht mehr und nicht weniger. Er „handelt“ nur, wenn er eine neue Zeile sieht, und weist den Interpreter somit an, das auszuführen, was Sie ihm gegeben haben. Der einzelne Backslash verhindert, dass der Interpreter jemals ein neues Zeilenzeichen empfängt (d. h. er weiß nicht, dass Sie tatsächlich gedrückt haben Enter), aber irgendwann wird er eines empfangen.

Der Python-Interpreter hatErweiterte Funktionenwenn Sie GNU readline verwenden, wie z. B. Emacs oder vi-artige Tastenkombinationen, um innerhalb einer Zeile zu navigieren (z. B. Ctrl-A). Diese funktionieren jedoch nur in der aktuellen Zeile. Der Verlauf ist auch vorhanden, versuchen Sie einfach, zu drücken .

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

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

Oder verwenden SieJupyter-Notebooks, die eine großartige, interaktive Möglichkeit bieten, Python-Code mit einem integrierten Interpreter zu erstellen. 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 selektiv nur Teile des Codes ausführen. Am besten probieren Sie es einfach aus und sehen, ob es zu Ihrem Arbeitsablauf passt.

Antwort2

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 pythonat command line ein, um in den Python-Interpreter zu gelangen, dann

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

sollte eine Ausgabe von geben

0
4

Antwort3

Ich habe mir gerade die Antwort durchgelesen, die Sie erhalten haben. Ich habe weiter experimentiert, indem ich verschiedene Symbole eingesetzt habe. Schließlich habe ich die richtige Syntax gefunden, um es zu schreiben. Versuchen Sie Folgendes

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

Dadurch erhalten Sie ein Ergebnis

more string

3

ohne einen Fehler

ich habe einfach ';' verwendet, um es in eine andere Zeile zu schreiben

ich hoffe meine Antwort hilft dir weiter

Antwort4

Ich habe einfach Folgendes in meine Shell-Eingabeaufforderung eingegeben und es hat problemlos 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
>>> 

Um mehr als eine Codezeile in den interaktiven Python-Interpreter einzugeben, müssen Sie mehr als eine Codezeile in den interaktiven Python-Interpreter eingeben. Ich denke, das reicht für Ihre Zwecke aus.

Es stimmt, dass Sie nach jeder Zeile eine neue Eingabeaufforderung erhalten. Das bedeutet, dass, wenn zwei Ihrer Codezeilen eine Ausgabe erzeugen, diese Ausgabe durch Eingabeaufforderungen getrennt wird. Ich nehme an, das ist es, worüber Sie sich Sorgen machen, obwohl das Beispiel in Ihrer Frage dies nicht nahelegt:

$ 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 darstellt, können Sie mehrere Anweisungen in eine (richtig eingerückte!) ifAnweisung 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
>>> 

(Auch wenn das Ihre Frage nicht beantwortet, würde ich vorschlagen, dass Sie Skripte schreiben sollten, wenn Sie Code schreiben, der komplex genug ist, damit dies eine Rolle spielt. Vielleicht haben Sie in den anderthalb Jahren, seit Sie die Frage gepostet haben, damit begonnen.)

verwandte Informationen