Warum muss Python einen Doppelpunkt schreiben?

In Python erfordern zusammengesetzte Anweisungen wie if, for, def und class einen Doppelpunkt :.

if True:
    print('Hello, world!')

Die Kopfzeile jedes Abschnitts beginnt mit einem eindeutig identifizierenden Schlüsselwort und endet mit einem Doppelpunkt. 8. zusammengesetzte Anweisung - Python-Sprachreferenz

Offizielle Dokumentation

In der offiziellen Dokumentation wird erklärt, warum Sie den Doppelpunkt : schreiben müssen.

(Täuschung) Persönlich ...

1. ABC-Sprache usw.

Wenn Sie in einer Zeile mit einem Semikolon ; in einer Zeile schreiben, ist dies leichter zu verstehen. Zu diesem Zeitpunkt wäre es ohne : ziemlich verwirrend.

def f(x): y = x + 1; z = y + 2; return z;

f(0)
>>> def f(x): y = x + 1; z = y + 2; return z;
... 
>>> f(0)
3
>>> 

Im offiziellen Dokument wird die Methode des Schreibens in mehreren Zeilen als Beispiel für die Rede von ABC-Sprache usw. angegeben, aber ich persönlich denke, dass der Einzeiler, der dieses Semikolon verwendet, kritischer war (; Ich benutze es selten, aber lol).

Es ist ein einfacher Satz, aber ich denke, es ist einfacher zu verstehen, wenn es einen Doppelpunkt gibt: im Fall eines Lambda-Ausdrucks.

g = lambda x: x + 1
g(0)
>>> g = lambda x: x + 1
>>> g(0)
1
>>> 

2. Analyse etc.

Ich habe Einrückungen anstelle von Klammern verwendet, um Sätze zu gruppieren. Ist es nicht etwas streng darauf zu bestehen, dass "es einfacher zu analysieren ist, wenn Sie den Doppelpunkt verwenden": "nur am Anfang"? Persönlich denke ich.

(Täuschung) Ist es notwendig?

Benötigen Sie diesen Doppelpunkt nicht? Wird oft kritisiert. Ich glaube auch nicht, dass ich ehrlich bin. Dies liegt daran, dass es selten vorkommt, zusammengesetzte Sätze mit einem Liner zu schreiben.

Python ist jetzt ziemlich vielseitig, aber mit dem Geist "Sie müssen nichts haben, was Sie wollen" habe ich das Gefühl, dass ich beim Hinzufügen neuer Funktionen vorsichtig war. Ich denke, dass der Geist durch die folgenden Worte von PEP 20 klar ausgedrückt wird.

There should be one-- and preferably only one --obvious way to do it. PEP 20 -- The Zen of Python

Es kann hier genauer sein zu sagen "Ich brauche nicht die Fähigkeit, in einen Liner mit Semikolon zu schreiben"; "" anstatt den Doppelpunkt nicht zu brauchen ":".

Ich habe über den Prozess des Schreibens eines Doppelpunkts nachgedacht, aber ... ich möchte in der Lage sein, mit einem Semikolon zu schreiben, sogar in einem Liner. Dazu müssen Sie einen Doppelpunkt : schreiben. Das Schreiben oder Nichtschreiben eines Doppelpunkts : ist mit und ohne Einzeiler inkonsistent.

Special cases aren't special enough to break the rules. PEP 20 -- The Zen of Python

Lassen Sie uns also vereinheitlichen, indem Sie einen Doppelpunkt : hinzufügen. Ich persönlich frage mich, ob das der Fall war.

Recommended Posts

Warum muss Python einen Doppelpunkt schreiben?
Warum Python Slicing durch einen Doppelpunkt (:) dargestellt wird
Ich möchte mit Python in eine Datei schreiben
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
[Python] So schreiben Sie eine Dokumentzeichenfolge, die PEP8 entspricht
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Schreiben Sie Code in UnitTest, eine Python-Webanwendung
Ein Weg zum mittleren Python
Schreiben Sie mit Python in csv
Schreiben Sie ein Python-Programm, um die Bearbeitungsentfernung [Python] [Levenshtein-Entfernung] zu ermitteln.
So schreiben Sie eine Meta-Klasse, die sowohl Python2 als auch Python3 unterstützt
[Python] Mit Python in eine CSV-Datei schreiben
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Schreiben Sie ein Batch-Skript mit Python3.5 ~
Python-Spezialcodec, der zu wissen scheint, aber nicht weiß
[Python] Ich habe einen Dekorateur gemacht, der keinen Nutzen zu haben scheint.
Qiita (1) Wie schreibe ich einen Codenamen?
[Python] Wie man eine Klasse iterierbar macht
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Python Bit Arithmetic Super Einführung
So schreiben Sie Python-Dokumentkommentare (Docstrings)
Ich möchte eine Python-Umgebung erstellen
[Python] So invertieren Sie eine Zeichenfolge
[Python] Erstellen Sie einen Linebot, um den Namen und das Alter auf das Bild zu schreiben
Ich habe eine Frage! (Python, Django) Einfach
Wie bekomme ich Stacktrace in Python?
Schreiben Sie ein Caesar-Verschlüsselungsprogramm in Python
Schreiben Sie eine einfache Giermethode in Python
Schreiben Sie einen TCP-Client mit Python Twisted
So schreiben Sie eine Zeichenfolge, wenn Python mehrere Zeilen enthält
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 3 Schreiben Sie in eine Datei
Schreiben Sie ein einfaches Vim-Plugin in Python 3
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Komprimieren Sie Python-Daten und schreiben Sie in SQLite
Erstellen eines Shell-Skripts zum Schreiben eines Tagebuchs
Wie schreibe ich Ruby to_s in Python
Fügen Sie VSCode eine virtuelle Python-Umgebung hinzu
So führen Sie Maya Python-Skripte aus
[Python] Kombinieren von Listen mit Zahlen zu Zeichenfolgen und Schreiben in eine Ausgabedatei
Auf der Suche nach einer effizienten Möglichkeit, eine Docker-Datei mit Python mit Gedichten zu schreiben
Ich musste im Unterricht keinen Dekorateur schreiben. Danke Kontextmanager
Senden Sie eine Nachricht von Slack an einen Python-Server
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Lesen einer CSV-Datei mit Python 2/3
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
Berechnen wir das statistische Problem mit Python
So öffnen Sie einen Webbrowser über Python
[Python] Der Weg zur Schlange (4) Numpy zwicken