2012-01-24 08:58:00 +0000 2012-01-24 08:58:00 +0000
36
36

Wie schreibe ich Code von mehr als 1 Zeile im Python-Interpreter?

Ich habe ein Problem, Python im Terminal zu kodieren. Ich lerne nur die Grundlagen, also habe ich keine Notwendigkeit, .py-Dateien zu erstellen.

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

Wenn ich die Eingabetaste drücke, wird offensichtlich der Befehl eingegeben und nicht eine Zeile weitergeschrieben.

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)

Antworten (7)

33
33
33
2012-01-24 09:37:07 +0000

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

Der Trick ist - ähnlich wie bei bash, zum Beispiel - einen abschließenden Backslash hinzuzufügen. Wenn ich zum Beispiel ein 1 ausgeben möchte:

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

Wenn Sie ein ## Fügen Sie einen abschließenden Backslash hinzu (## Fügen Sie einen abschließenden Backslash hinzu ()

Der Trick ist - ähnlich wie bei bash, zum Beispiel - einen abschließenden Backslash hinzuzufügen. Wenn ich zum Beispiel ein 1 ausgeben möchte:

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

Wenn Sie ein schreiben, wird Python Sie mit ... (Fortsetzungszeilen) auffordern, in der nächsten Zeile Code einzugeben, also etwa.

Nebenbemerkung: Das passiert automatisch, wenn Sie eine Funktions- oder Klassendefinition erstellen, also in den Momenten, in denen Sie wirklich eine neue Zeile brauchen, also gibt es nie eine wirklich gute Verwendung dafür, oder zumindest keine, von der ich weiß. Mit anderen Worten: Python ist schlau genug, um zu wissen, dass Sie Fortsetzungszeilen brauchen, wenn Sie eine neue Funktionsdefinition oder andere ähnliche Konstrukte (z.B. if:) eingeben. Beachten Sie in diesen automatischen Fällen, dass Sie mit ## Fügen Sie einen abschließenden Backslash hinzu (## Fügen Sie einen abschließenden Backslash hinzu ()

Der Trick ist - ähnlich wie bei bash, zum Beispiel - einen abschließenden Backslash hinzuzufügen. Wenn ich zum Beispiel ein 1 ausgeben möchte:

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

Wenn Sie ein ## Fügen Sie einen abschließenden Backslash hinzu (## Fügen Sie einen abschließenden Backslash hinzu ()

Der Trick ist - ähnlich wie bei bash, zum Beispiel - einen abschließenden Backslash hinzuzufügen. Wenn ich zum Beispiel ein 1 ausgeben möchte:

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

Wenn Sie ein schreiben, wird Python Sie mit ... (Fortsetzungszeilen) auffordern, in der nächsten Zeile Code einzugeben, also etwa.

Nebenbemerkung: Das passiert automatisch, wenn Sie eine Funktions- oder Klassendefinition erstellen, also in den Momenten, in denen Sie wirklich eine neue Zeile brauchen, also gibt es nie eine wirklich gute Verwendung dafür, oder zumindest keine, von der ich weiß. Mit anderen Worten: Python ist schlau genug, um zu wissen, dass Sie Fortsetzungszeilen brauchen, wenn Sie eine neue Funktionsdefinition oder andere ähnliche Konstrukte (z.B. if:) eingeben. Beachten Sie in diesen automatischen Fällen, dass Sie mit eine Leerzeile eingeben müssen, um Python zu sagen, 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, nun ja, jede Zeile interpretiert, mit der Sie ihn füttern. Nicht mehr und nicht weniger. Er wird nur “handeln”, wenn er einen Zeilenumbruch sieht, also dem Interpreter sagen, dass er das ausführen soll, was Sie ihm gegeben haben. Der einzelne Backslash verhindert, dass der Interpreter jemals ein Newline-Zeichen erhält (d.h. er wird nicht wissen, dass Sie tatsächlich Enter gedrückt haben), aber er wird schließlich eines erhalten.

Pythons Interpreter hat erweiterte Fähigkeiten wenn Sie GNU readline benutzen, wie z.B. Emacs oder vi-style keybindings, um innerhalb einer Zeile zu navigieren (z.B. Ctrl-A). Diese funktionieren aber nur in der einen aktuellen Zeile. Die Historie ist auch da, einfach ausprobieren und ↑ drücken.

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

Sie wollen wahrscheinlich richtige Quelldateien verwenden, wenn Sie mehr als eine Zeile Code auf einmal ausführen wollen.

Oder Sie verwenden Jupyter-Notebooks , die eine großartige, interaktive Möglichkeit bieten, Python-Code mit einem eingebauten 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 einfach aus, ob das zu Ihrem Arbeitsablauf passt.

8
8
8
2013-07-01 22:22:29 +0000

Wie wäre es mit der Verwendung von ;Wie wäre es mit der Verwendung von ? Das Semikolon signalisiert das Ende eines Befehls und der Backslash signalisiert, dass wir in der nächsten Zeile fortfahren. Geben Sie zum Beispielpython` in die Kommandozeile ein, um in den Python-Interpreter zu gelangen, dann sollte

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

eine Ausgabe von

0
4
``` ergeben.
2
2
2
2012-01-24 09:54:25 +0000

Einfach gesagt, wenn Sie lernen wollen und mehr als eine Zeile ausführen wollen, schreiben Sie sie in eine .py-Datei.

Die Methode mit dem nachgestellten Backslash ist gut, wenn Sie schnell eine Reihe von Befehlen ausführen wollen, aber sie hilft nicht, wenn Sie lernen.

Sie werden in der Lage sein, Code besser zu entwickeln, einzelne Befehle zu bearbeiten, ohne sich über Rechtschreibfehler Gedanken zu machen, und Codeschnipsel, die Sie nützlich finden, wiederzuverwenden, wenn Sie sie in eine kleine Datei schreiben.

1
1
1
2018-05-01 18:28:49 +0000

Ich bin gerade die Antwort durchgegangen, die Sie bekommen haben.Ich habe weiter experimentiert, indem ich verschiedene Symbole eingesetzt habe.Ich habe schließlich die korrekte Syntax gefunden, um es zu schreiben.Versuchen Sie folgendes

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

dies wird Ihnen ein Ergebnis

more string

3

ohne Fehler liefern

ich habe nur ‘;’ verwendet, um es in eine andere Zeile zu schreiben

ich hoffe, meine Antwort kann Ihnen helfen

1
1
1
2013-07-01 22:44:47 +0000

Ich habe gerade das Folgende an meiner Shell-Eingabeaufforderung 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
>>>

Der Weg, um mehr als eine Zeile Code im interaktiven Python-Interpreter einzugeben, ist, nun ja, mehr als eine Zeile Code im interaktiven Python-Interpreter einzugeben. Ich würde denken, dass das für Ihre Zwecke gut genug ist.

Es stimmt, dass Sie nach jeder Zeile einen neuen Prompt erhalten, was bedeutet, dass wenn zwei Ihrer Codezeilen eine Ausgabe erzeugen, diese Ausgabe durch Prompts getrennt wird. Ich vermute, das ist es, worüber Sie besorgt sind, obwohl das Beispiel in Ihrer Frage das 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 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, dass Sie Skripte schreiben sollten, wenn Sie Code schreiben, der komplex genug ist, dass dies eine Rolle spielt. Vielleicht haben Sie in den anderthalb Jahren, seit Sie die Frage gestellt haben, damit begonnen).

0
0
0
2018-08-28 19:51:18 +0000

Verlassen Sie einfach die Shell und öffnen Sie eine neue Editor-Datei. D.h. gehen Sie auf Datei und öffnen Sie eine neue Datei. Schreiben Sie so viele Codezeilen, wie Sie wollen.

-2
-2
-2
2016-05-25 12:12:58 +0000

Achten Sie bei den drei Punkten darauf, dass Sie die “Tabulator”-Taste drücken, bevor Sie den nächsten Befehl eingeben. Auf diese Weise können Sie beliebig viele Befehle schreiben. Wenn Sie also die Eingabetaste drücken, nachdem Sie die zweite Codezeile geschrieben haben, lässt der Interpreter Sie die dritte Codezeile eingeben… wie im Fibonacci-Beispiel unten (aus dem Tutorial):

a,b=0,1 while b<10: … print(b) # Wenn Sie den print-Befehl direkt nach den Punkten eingeben und die Eingabetaste am Ende drücken, erhalten Sie einen Einrückungsfehler. Drücken Sie stattdessen die Tabulatortaste nach den drei Punkten, schreiben Sie dann Ihren Code und drücken Sie die Eingabetaste, dann können Sie die dritte Codezeile eingeben und so weiter. Schauen Sie sich das folgende Beispiel (aus dem Tutorial) an:

a,b=0,1 # Gefolgt von der Eingabetaste while b<10: # Gefolgt von der Eingabetaste … print(b) # Gefolgt von der Eingabetaste. Beachten Sie den Tabulator nach den drei Punkten … a,b=b,a+b # Gefolgt von der Eingabetaste …Eingabetaste # Keine weiteren Befehle einzugeben

Sie sehen das Ergebnis des obigen Prog