Vor einiger Zeit wurde ich in meine Lieblings-Programmiersprache / Programmiersprache eingeführt: Python. Es ist schwierig für einen Sprachentwickler, etwas zu entwickeln, das sowohl leistungsstark als auch einfach zu schreiben ist. Es ist etwas, das natürlich fließt und es Ihnen ermöglicht, sich auf das zu konzentrieren, was in Ihrem Code wichtig ist. Python macht das wunderbar. Es macht genau die richtigen Arten von Annahmen, so dass Sie sich mehr auf das konzentrieren können, was Ihr Programm tun sollte, anstatt genau, wie es gemacht werden sollte. Sie müssen sich nicht um die Speicherverwaltung, die Typisierung von Variablen oder die gestrafften Semikolons kümmern. Denken Sie nur an die Logik Ihrer Anwendung.

Python nimmt einige ziemlich große Abweichungen von einigen der traditionellen Sprachen wie C / C ++, passt besser in die dynamischen Sprachen wie Ruby, Smalltalk und sogar Javascript. Die Fähigkeit, komplexe Aufgaben in Python schnell und einfach zu erledigen, war sogar Gegenstand einiger toller Webcomics.

Hinweis - Python ist eine interpretierte Sprache, der Interpreter kann hier heruntergeladen werden. Alle Beispiele in diesem Handbuch sind für Python 3.0 geschrieben, das NICHT vollständig abwärtskompatibel mit früheren Versionen ist. Wenn Sie Probleme beim Ausführen der Beispiele haben, überprüfen Sie Ihre Python-Version.

Ausführen der Beispiele

Ich werde in diesem Leitfaden verschiedene Beispiele vorstellen. Sobald Sie den Python 3-Interpreter installiert haben (stellen Sie sicher, dass es Python 3 ist), kann Code auf zwei Arten ausgeführt werden:

Skriptdatei

Sie können den vollständigen Text des Beispielcodes in eine Textdatei kopieren / einfügen. Python-Dateien enden in der Regel in .py. Öffnen Sie die Eingabeaufforderung und führen Sie die Python-Programmdatei gefolgt von dem Namen der Datei aus. Auf meinem Linux-Rechner laufe ich:

 python3.0 myfile.py 

Unter Windows und Mac sollte dies ungefähr gleich sein, obwohl Sie möglicherweise den vollständigen Pfad zum Python-Interpreter angeben müssen, z

 C: \ Python30 \ python.exe MeineDatei.py 

Interaktiver Dolmetscher

Python kann auch im interaktiven Modus ausgeführt werden, in dem Sie Befehle nacheinander eingeben können, um zu sehen, wie sie reagiert. Dies kann sehr hilfreich bei der Fehlersuche oder beim Ausprobieren neuer Dinge sein. Führen Sie die ausführbare Python-Datei ohne Skriptdatei aus und es wird die interaktive Eingabeaufforderung geöffnet.

Strg-D beendet den Interpreter.

Leerzeichen

Einer der ungewöhnlichsten Aspekte von Python ist die Verwendung von Leerzeichen zur Kennzeichnung von Code-Blöcken. Anstelle von Beginn und Ende oder Gruppierung in Klammern verwendet Python den Einrückungsbetrag, um zu bestimmen, wie mit Code-Blöcken für Schleifen und ähnliches umzugehen ist. Für viele Leute, die aus anderen Programmiersprachen kommen, erscheint das wie Wahnsinn. Sobald Sie sich jedoch an die Idee gewöhnt haben, wird es ganz natürlich und zwingt Ihren Code, klar und lesbar zu sein. Wir alle Code Blöcke einrücken (oder zumindest sollten), so dass es nur für die Sprache sinnvoll ist zu verstehen, dass alle zusammengestellten Anweisungen Teil des gleichen Blocks sind.

Als zusätzlichen Vorteil ist Python nicht wählerisch, was Sie gerne einrücken möchten, oder ob Sie Tabulatoren oder Leerzeichen bevorzugen. Sie können eine Registerkarte, ein Leerzeichen, zwei Leerzeichen, 137 Leerzeichen, Python ist es egal. Alles, was Sie tun müssen, ist konsistent zu sein. Es wird Ihren Code überprüfen und sehen "Der erste Codeblock ist um 4 Leerzeichen eingerückt, so nehme ich an, dass jeder andere Block um weitere 4 Leerzeichen eingerückt ist" oder was auch immer der Fall sein mag. Solange Sie konsistent sind, wie Sie Ihren Code einrücken, ist Python flexibel genug, um es zu verstehen. Das folgende Beispiel kann helfen, Dinge zu klären.

 1 2 3 4 5 
 x = 0 während x <10: drucken (x) x + = 1 drucken ("All done") 

Codeaufschlüsselung: Die while- Schleife weist Python an, den folgenden Codeblock auszuführen, solange bestimmte Bedingungen erfüllt sind. In diesem Fall ist die Bedingung, dass x kleiner als 10 ist. Es wird weiter über diesen Block laufen, bis x 10 erreicht. Das "x + = 1" übersetzt sich zu "x = x + 1" oder "mache x um 1 größer ". Beachten Sie, dass die letzte Zeile erst ausgeführt wird, wenn die while- Schleife beendet ist. Python sieht die eingerückten Zeilen und behandelt diese als die Gruppe von Code, die bei jeder Reise durch die while- Schleife ausgeführt werden soll. Die letzte Zeile ist nicht mit den anderen eingerückt, so dass Python erst dann reagiert, wenn die while- Schleife beendet ist.

Dynamisches Schreiben

In Python müssen Sie nicht definieren, welcher Datentyp in einer Variablen enthalten sein soll. Sie können eine Ganzzahl, eine Zeichenkette, eine Dezimalzahl, alles was Sie wollen in eine Variable setzen, ohne Python mitteilen zu müssen, was es ist. Python wird basierend darauf, was Sie zuweisen, herausfinden, welche Art von Daten diese Variable enthalten soll. Das folgende Beispiel soll zeigen:

 1 2 3 4 5 6 7 8 
 x = 0 print ("x ist a:", type (x)) x = 3.14 print ("x ist a:", type (x)) x = "Hallo" print ("x ist a:", type ( x)) x = [1, 2, 3, 4] Druck ("x ist a:", Typ (x)) 

Das gibt uns die Ausgabe unten

Datenstrukturen

Die drei Datenstrukturen, die Sie am häufigsten in Python verwenden, sind:

  • Listen
  • Tupel
  • Wörterbücher

Listen

ähneln Arrays in einigen anderen Sprachen. Sie sind eine eindimensionale Abfolge von Elementen (obwohl Sie ihnen technisch so viele Dimensionen geben können, wie Sie möchten). Jedes Element in dieser Liste kann nach Belieben geändert, verschoben und entfernt werden, ohne dass die Liste erneut erstellt werden muss, ohne dass die anderen Elemente geändert werden. Listen können ein beliebiges Python-Objekt enthalten, unabhängig davon, ob es sich um eine Zahl, eine Zeichenfolge oder sogar andere Listen handelt. Der folgende Code zeigt einige grundlegende Verwendung von Listen.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 
 #eine Liste mit einigen Beispielelementen erstellen myList = [1, 2, 3, 4, 5] #len () gibt an, wie viele Elemente unsere Liste enthält ("myList has", len (myList), "items") . ") #Die Elemente in einer Liste müssen nicht vom selben Typ sein myList.append (" sechs ") myList.append (" sieben ") myList.append (8) # Wir haben drei neue Elemente hinzugefügt Das Ende der Liste drucken ("myList hat jetzt", len (myList), "items".) # Jetzt sehen wir die Artikelnummer 0 (erster Artikel) print ("first item:", myList [0]) #und jetzt der vierte Artikel drucken ("vierter Artikel:", Meine Liste [3]) #Dann den letzten Artikel aus der Liste drucken ("und endet mit", myList.pop ()) drucken ("myList hat jetzt", len ( myList), "items.") #Und sehen Sie, was wir gemacht haben print ("Der komplette Inhalt sind:", myList) 

Tupel

Ich werde Tupel nicht viel behandeln, da sie nicht in unserem Beispielprogramm verwendet werden und in vielerlei Hinsicht Listen ähnlich sind. Tupel, wie Listen, sind eine Reihe von Elementen, die zusammen gruppiert sind. Der Unterschied besteht darin, dass Tupel nicht veränderbar sind. Sie können keine direkten Änderungen an den Elementen in einem Tupel vornehmen, sondern müssen das Tupel neu erstellen. Dies bedeutet kein "Anhängen" oder "Pop" oder andere Dinge, die den Inhalt des Tupels direkt verändern. Wenn es hilft, können Sie sich Tupel als eine schreibgeschützte Liste vorstellen (obwohl das wirklich nicht sehr genau ist).

Wörterbücher

Diese, ich liebe. Als ich zum ersten Mal über Wörterbücher unterrichtet wurde, erinnere ich mich daran, etwas in der Art von "Naja ... ich glaube, das könnte nützlich sein ... manchmal" zu denken. Innerhalb einer Woche habe ich sie bei jeder Gelegenheit benutzt.

In Python sind Wörterbücher Schlüssel: Wertpaare. Es ist irgendwie wie eine Liste, außer dass jeder Gegenstand zwei Teile hat, einen Schlüssel und einen Wert. Im folgenden Beispiel werde ich ein Wörterbuch erstellen, das Informationen über mich enthält.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
 myDict = {} # Schlüsselwert myDict ["Name"] = "Josh" myDict ["Beruf"] = "Computer Geek" myDict ["FavFood"] = "Hani Spezial (kein Salat)" myDict ["FavBand"] = "Alles andere als die B-52s" myDict ["Helden"] = "Tom Waits, Kurt Vonnegut, SpaceBat" myDict ["FavNumber"] = 3.141592 myDict [42] = "Es ist auch eine gute Nummer" drucken ("Mein Name: ", myDict [" Name "]) drucken (" Meine Helden: ", myDict [" Heroes "]) drucken (" Meine Lieblingszahl: ", myDict [" FavNumber "]) drucken (" Was denke ich an 42? ", myDict [42]) print () # Jetzt ändere ich meine Lieblings-Nummer, ohne ein # ganz neues Wörterbuch zu erstellen myDict [" FavNumber "] + = 100 print (" Meine neue Lieblings-Nummer: ", myDict [" FavNumber " ]) 

Ein paar Dinge sollten aus dem Beispiel klar sein. Erstens können Wörterbücher Daten beliebigen Typs mischen und abgleichen. Ihre Schlüssel und Werte können von allem sein. Sie können sogar wirklich verrückt werden und Dinge wie Funktionen in Wörterbücher einfügen, aber das ist weit über den Rahmen dieses Handbuchs hinaus.

Zweitens sind Wörterbücher veränderbar. Sie können Objekte im laufenden Betrieb hinzufügen und entfernen, ohne das Wörterbuch neu zu erstellen oder andere Elemente zu beeinflussen.

Wenn Sie sich der Nützlichkeit von Wörterbüchern immer noch nicht sicher sind, sollten Sie sie verwenden, um die Einstellungen eines Benutzers zu verfolgen. Sie könnten ein Wörterbuch namens Einstellungen haben und Dinge wie Benutzername, IP-Adresse und Bildschirmauflösung speichern. Jedes Mal, wenn Sie auf diese Daten verweisen müssen, können Sie sie einfach aus den Einstellungen ["username"] oder einem anderen von Ihnen angegebenen Schlüssel abrufen.

Bring alles nach Hause

Jetzt werden wir zur richtigen Aktion übergehen und ein nützliches Python 3.0-Programm erstellen. Was dieses Programm tun wird, ist eine Zahl, die Geld darstellt, und Ihnen sagen, wie viel Taschengeld diesen Betrag machen würde. Es ist eine ziemlich häufige Programmierübung und ein guter Weg, um die Konzepte, die wir bisher behandelt haben, zu demonstrieren.

Ich sollte Ihnen jetzt sagen, dass dieses Programm NICHT auf die "beste" Weise geschrieben wird, mein Ziel ist es, es unter Verwendung der grundlegendsten Konzepte und Operationen zu schreiben. Es gibt mehrere "bessere" Möglichkeiten, dies zu schreiben, zum Beispiel Funktionen und den Modulo-Operator zu verwenden und Fehler zu überprüfen, aber diese Version sollte ziemlich einfach zu verstehen sein.

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 
 #Die Gesamtmenge des Geldbetrags = eingeben ("Geldbetrag in US-Dollar eingeben: $") #Lesen von Texteingabe setzt Text voraus, also wandeln Sie # in Dezimal und mehrfach in 100 um, damit wir Pennies # zählen können (einfachere Mathematik auf diese Weise) float (total) * 100 # create dictionary, um unsere Änderungswerte zu speichern change = {"viertel": 0, "dimes": 0, "nickels": 0, "pennies": 0} #Loop, bis das gesamte Geld berücksichtigt wurde während Pennies> 0: #Ziehen Sie jede Münze von der Summe ab, addieren Sie 1, um # für jede Münze zu zählen, und starten Sie die Schleife nach dem Zählen erneut, wenn Sie ein Penny> = 25: ändern ["viertel"] + = 1 Pennies - = 25 continue elif pennies> = 10: change ["Groschen"] + = 1 Groschen - = 10 elif Groschen fortsetzen> = 5: change ["nickels"] + = 1 Groschen - = 5 weiter else: change ["pennies"] = int (Groschen) Pennies = 0 #Finally, drucken Sie unsere Ergebnisse drucken ("Q:", ändern ["Viertel"]) drucken ("D:", ändern ["Groschen"]) drucken ("N:", ändern ["Nickels"] ) drucken ("P:", ändern ["Pennies"]) 

Code Breakdown: Wir verwenden Eingabe, um eine Menge Geld von der Kommandozeile zu bekommen. Python geht davon aus, dass das, was eingegeben wird, eine Zeichenfolge aus Text ist, im Gegensatz zu einer Zahl, also müssen wir ihm sagen, dass er diese Eingabe in eine verwendbare Zahl umwandeln soll. Wir hätten die Zahl allein lassen können (zB 15.95), aber stattdessen haben wir sie in Pennies umgewandelt (multipliziert mit 100), um die Mathematik einfacher zu machen, damit wir uns keine Gedanken um Dezimalpunkte machen müssen.

Als nächstes erstellen wir ein Wörterbuch, um die Ergebnisse unserer Berechnungen zu speichern. Wenn dies ein komplexeres Programm wäre, könnten wir dieses Wörterbuch an unsere Funktionen, Klassen usw. weitergeben, ohne sich darum sorgen zu müssen, getrennte Variablen für jede Art von Münze zu verfolgen.

Danach kommt die eigentliche Arbeit - die Aufteilung unseres Geldes in einzelne Münzen. Dieses Programm verwendet eine while- Schleife, um weiterzufahren, bis wir kein Geld mehr von unserem ursprünglichen Input übrig haben. Jeder Trip durch die Schleife betrachtet den Geldbetrag, subtrahiert die größtmögliche Münze und startet die Schleife neu. Anstatt Subtraktionen immer wieder durchzuführen, wäre dieses Programm wahrscheinlich viel effizienter, wenn wir den Modulo-Operator verwendet hätten, aber die Subtraktion ist leichter zu verstehen.

Sobald wir mit der Schleife fertig sind, müssen wir nur noch unsere Ergebnisse anzeigen.

Python ist in der Lage, mehr als ich hier abdecken könnte, aber ich hoffe, dass ich in der Lage war, die Grundlagen zu demonstrieren, wie es funktioniert, und wie es verwendet werden kann, um schnell und einfach Werkzeuge zu erstellen, die in einem sehr viel komplizierter sind weniger intuitive Sprache.

Falls jemand so neugierig ist wie ich "Tupel" richtig aussprechen sollte, hatte ich das Glück, Guido van Rossum selbst fragen zu können, ob es "Toople" oder "Tupple" war, und er gab die etwas unbefriedigende Antwort "Es ist was auch immer du willst."