Heim >Backend-Entwicklung >Python-Tutorial >Python ist scheiße bei For-Schleifen – und genau deshalb lieben wir es
Python, die elegante Katze in der Welt der Programmiersprachen: unabhängig, anspruchsvoll und scheinbar braucht Sie Sie nicht, bis es wirklich so ist. Diese Eigenschaft spiegelt sich am deutlichsten in der for-Schleife wider, die einem sofort das Gefühl geben kann, ein Genie und ein Idiot zu sein.
Es ist nicht so, dass die for-Schleife von Python schlecht wäre, es ist nur so, dass sie zu gut darin ist, so zu tun, als wüsste sie es besser als Sie.
For-Schleifen sind in den meisten Programmiersprachen intuitiv. Möchten Sie bis 10 zählen? Kein Problem, geben Sie Ihnen eine Menge Standardcode, damit Sie sich schlau fühlen.
So schreiben Sie in der C-Sprache:
<code class="language-c">for (int i = 0; i < 10; i++) { printf("%d\n", i); }</code>
Einfach, vorhersehbar und respektvoll gegenüber Ihrem IQ.
Und Python sagt:
„Warum sollten Sie sich die Mühe machen, i zu definieren, einen Bereich anzugeben oder Grundrechenarten durchzuführen? Ich werde Ihnen das alles darlegen, damit Sie erleben können, wie es ist, ein falscher Programmierer zu sein.“
Python-Version:
<code class="language-python">for i in range(10): print(i)</code>
Das ist es. Keine Deklarationen, keine Klammern, nur „Vibe“. Pythons for-Schleife ist so einfach, dass sie sich ein wenig falsch anfühlt.
Angenommen, Sie haben eine Liste mit Früchten und möchten diese ausdrucken.
C-Sprachversion (wieder sehr respektvoll):
<code class="language-c">char* fruits[] = {"apple", "banana", "cherry"}; for (int i = 0; i < 3; i++) { printf("%s\n", fruits[i]); }</code>
Python-Version:
<code class="language-python">fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)</code>
Ist dir etwas aufgefallen? Python macht sich nicht einmal die Mühe, Ihnen einen Index zu geben. Es wirft einfach das gesamte Element auf Sie, wie ein Frisbee, und sagt: „Hier, kümmern Sie sich darum.“
Möchten Sie Ihren Einfallsreichtum unter Beweis stellen, indem Sie eine Liste manuell indizieren? Schade. Python weiß bereits, was Sie wollen und gibt es Ihnen direkt weiter.
Listenverständnis ist das Grab von for-Schleifen.
Möchten Sie eine neue Liste erstellen, in der jede Zahl verdoppelt wird? In jeder anderen Sprache würde dies 3 bis 4 Zeilen Code erfordern. Python demonstriert ganz einfach seine Fähigkeiten im Bereich der einzeiligen Codierung:
<code class="language-python">doubled = [x * 2 for x in range(10)]</code>Das ist nicht nur
effizient, es gibt Ihnen auch das Gefühl, Code in einer geheimen Programmiersprache zu schreiben, die Normalsterbliche niemals verstehen werden. Aber der Preis ist: Ihre for-Schleife sieht jetzt aus wie ein kryptisches Kreuzworträtsel.
<code class="language-python">results = [f"Employee-{i}" for i in range(10) if i % 2 == 0]</code>Herzlichen Glückwunsch! Sie haben gerade eine Codezeile geschrieben und zwei Wochen später wissen Sie nicht einmal, was das bedeutet.
<code class="language-c">for (int i = 0; i < 10; i++) { printf("%d\n", i); }</code>
Warte, was? Haben wir nicht alles durch „Ananas“ ersetzt? NEIN! Python kichert in der Ecke, weil fruit
nur eine temporäre Variable ist. Die eigentliche Liste wird nicht geändert.
In der Zwischenzeit schmunzeln JavaScript-Entwickler, weil sie wissen, dass sie mit Problemen mit dem variablen Bereich ganze Produktionssysteme zum Absturz bringen können.
Manchmal benötigen Sie sowohl einen Index als auch einen Wert. Python hätte dazu führen können, dass Sie wie andere Sprachen langweiliges i
verwenden. Aber es gibt Ihnen enumerate(), was eher nach einem Unternehmensbegriff als nach einer Programmierfunktion klingt.
<code class="language-python">for i in range(10): print(i)</code>
"aufzählen". Wirklich? Python, das ist keine Vorstandssitzung. Entspannen Sie sich einfach.
Möchten Sie eine Liste ändern, während Sie sie durchlaufen? Python wird Sie ausdruckslos ansehen und sagen:
„Du überdenkst.“
Beispiel:
<code class="language-c">char* fruits[] = {"apple", "banana", "cherry"}; for (int i = 0; i < 3; i++) { printf("%s\n", fruits[i]); }</code>
Es fehlen jetzt Elemente in der Liste, weil Python unterwegs verloren gegangen ist. Wenn Python ein Kellner wäre, wäre das so, als würde man den Tisch abräumen, bevor man überhaupt mit dem Essen fertig ist.
Versuchen Sie, eine klassische Endlosschleife in Python zu schreiben. Weißt du, zum Spaß. So schreiben Sie es in C-Sprache:
<code class="language-python">fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)</code>
Das Folgende ist die Python-Version:
<code class="language-python">doubled = [x * 2 for x in range(10)]</code>
Es funktioniert, aber es fühlt sich komisch an. Python versucht nicht einmal, eine klassische Endlosschleife zu emulieren. Es ist einfach eine...unendliche Wahrheit.
Fazit: Pythons for-Schleife ist nicht schlecht – Nur wir können das nicht
Die Wahrheit ist, dass die for-Schleife von Python gar nicht so schlecht ist. Es ist nur so, dass wir selbst verwöhnt sind. Die Schleifen von Python sind so intuitiv, prägnant und leistungsstark, dass wir den Aufwand vergessen, Indizes manuell zu verfolgen oder mit Segfaults umzugehen.
Wenn Sie sich also das nächste Mal über die for-Schleifen von Python beschweren, denken Sie daran: Python ist nicht schrecklich. Es ist einfach langweilig, deine Hand zu halten.
Das obige ist der detaillierte Inhalt vonPython ist scheiße bei For-Schleifen – und genau deshalb lieben wir es. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!