Vor einiger Zeit wurde mir meine Lieblings-Programmier-/Skriptsprache Nr. 1 vorgestellt: Python. Es ist schwierig für einen Sprachentwickler, etwas zu entwickeln, das sowohl leistungsstark als auch einfach zu schreiben ist, etwas, das natürlich fließt und es Ihnen ermöglicht, sich auf das Wesentliche in Ihrem Code zu konzentrieren. Python macht das wunderbar. Es macht genau die richtigen Annahmen, sodass Sie sich mehr darauf konzentrieren können, was Ihr Programm tun soll, anstatt genau darauf zu achten, wie es ausgeführt werden soll. Sie müssen sich keine Sorgen um Speicherverwaltung, Variablentypisierung oder diese verdammten Semikolons machen, Sie behalten nur die Logik Ihrer Anwendung im Auge.
Python nimmt einige ziemlich große Abweichungen von einigen der traditionelleren Sprachen wie C/C++ und passt besser zu den dynamischen Sprachen wie Ruby, Smalltalk und sogar Javascript. Die Fähigkeit, komplexe Aufgaben in Python schnell und einfach zu erledigen, war sogar Gegenstand einiger großartiger NetzComics.
Hinweis – Python ist eine interpretierte Sprache, der Interpreter kann heruntergeladen werden hier. Alle Beispiele in diesem Handbuch sind für Python 3.0 geschrieben, das ist NICHT vollständig abwärtskompatibel mit früheren Versionen. Wenn Sie Probleme beim Ausführen der Beispiele haben, überprüfen Sie Ihre Python-Version.
Ausführen der Beispiele
Ich werde verschiedene Beispiele in diesem Handbuch einfügen. Sobald Sie den Python 3-Interpreter installiert haben (stellen Sie sicher, dass es sich um Python 3) handelt, kann der 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 normalerweise auf .py. Öffnen Sie Ihre Eingabeaufforderung und führen Sie die ausführbare Python-Datei gefolgt vom Namen der Datei aus. Auf meinem Linux-Rechner führe ich aus:
python3.0 meine Datei.py
Dies sollte auch unter Windows und Mac ungefähr gleich sein, obwohl Sie möglicherweise den vollständigen Pfad zum Python-Interpreter angeben müssen, z
C:\Python30\python.exe meine Datei.py
Interaktiver Dolmetscher
Python kann auch im interaktiven Modus ausgeführt werden, in dem Sie Befehle einzeln eingeben können, um zu sehen, wie es reagiert. Dies kann bei der Fehlersuche oder beim Ausprobieren neuer Dinge sehr nützlich sein. Führen Sie die ausführbare Python-Datei allein ohne Skriptdatei aus, und die interaktive Eingabeaufforderung wird geöffnet.
Strg + D wird der Dolmetscher verlassen.
Leerzeichen
Einer der ungewöhnlichsten Aspekte von Python ist die Verwendung von Leerzeichen, um Codeblöcke anzuzeigen. Anstatt Start und Endeoder Gruppierung durch Klammern verwendet Python die Einrückung, um anzugeben, wie Codeblöcke für Schleifen und dergleichen behandelt werden. Für viele Leute, die aus anderen Programmiersprachen kommen, erscheint dies wie Wahnsinn. Sobald Sie sich jedoch an die Idee gewöhnt haben, wird sie ganz natürlich und zwingt Ihren Code, klar und lesbar zu sein. Wir alle rücken Codeblöcke sowieso ein (oder sollten es zumindest tun), daher ist es für die Sprache nur sinnvoll zu verstehen, dass alle aneinandergereihten Anweisungen Teil desselben Blocks sind.
Als zusätzlicher Vorteil ist Python nicht wählerisch, wenn es darum geht, wie viel Sie einrücken möchten oder ob Sie Tabulatoren oder Leerzeichen bevorzugen. Sie können einen Tab, ein Leerzeichen, zwei Leerzeichen, 137 Leerzeichen verwenden, Python ist das egal. Alles, was Sie tun müssen, ist konsequent zu sein. Es überprüft Ihren Code und sieht "Der erste Codeblock ist um 4 Leerzeichen eingerückt, also gehe ich davon aus, dass jeder andere Block um weitere 4 Leerzeichen eingerückt ist" oder was auch immer der Fall sein mag. Solange Sie beim Einrücken Ihres Codes konsistent sind, ist Python flexibel genug, um es zu verstehen. Das folgende Beispiel kann zur Klärung beitragen.
x =0während x 10: drucken(x) x +=1drucken("Alles erledigt")
Code-Aufschlüsselung: Das während
loop 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 über diesen Block weitergeschleift, bis x 10 erreicht. Das x += 1
wird übersetzt in x = x + 1
oder "mache x um 1 größer". Beachten Sie, dass die letzte Zeile nicht ausgeführt wird, bis die während
Schleife ist fertig. Python erkennt die eingerückten Zeilen und behandelt diese als die Codegruppe, die bei jeder Fahrt durch die während Schleife. Die letzte Zeile wird nicht mit den anderen eingerückt, sodass Python darauf nicht reagiert, bis die während
Schleife ist fertig.
Dynamische Eingabe
Python erfordert nicht, dass Sie definieren, welcher Datentyp in einer Variablen enthalten sein soll. Sie können eine ganze Zahl, einen String, eine Dezimalzahl oder alles, was Sie wollen, in eine Variable einfügen, ohne Python sagen zu müssen, was es ist. Python wird basierend auf dem, was Sie zuweisen, herausfinden, welche Art von Daten diese Variable enthalten soll. Folgendes Beispiel soll demonstrieren:
x =0drucken("x ist ein:",Typ(x)) x =3.14drucken("x ist ein:",Typ(x)) x ="Hallo"drucken("x ist ein:",Typ(x)) x =[1,2,3,4]drucken("x ist ein:",Typ(x))
Was uns die folgende Ausgabe liefert
Datenstrukturen
Die drei Datenstrukturen, die Sie in Python am häufigsten verwenden, sind
- Listen
- Tupel
- Wörterbücher
Listen
sind Arrays in einigen anderen Sprachen sehr ähnlich. Sie sind eine eindimensionale Folge von Elementen (obwohl Sie ihnen technisch gesehen 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 neu erstellt werden muss oder die anderen Elemente geändert werden. Listen können jedes Python-Objekt enthalten, sei es eine Zahl, ein String oder sogar andere Listen. Der folgende Code zeigt einige grundlegende Verwendungen von Listen.
#Erstelle eine Liste mit einigen Beispielelementen meine Liste =[1,2,3,4,5]#len() gibt an, wie viele Elemente unsere Liste enthältdrucken("myList hat",len(meine Liste)," Artikel.")#Die Elemente in einer Liste müssen nicht vom gleichen Typ sein meine Liste.anhängen("sechs") meine Liste.anhängen("Sieben") meine Liste.anhängen(8)#Wir haben drei neue Elemente an das Ende der Liste angehängtdrucken("myList hat jetzt",len(meine Liste)," Artikel.")#Jetzt sehen wir uns die Artikelnummer 0 (erster Artikel) andrucken("Erster Gegenstand:", meine Liste[0])#und jetzt der vierte Punktdrucken("vierter Punkt:",meine Liste[3])#Dann nimm das letzte Element aus der Listedrucken("und endet mit", meine Liste.Pop())drucken("myList hat jetzt",len(meine Liste)," Artikel.")#Und sehen Sie, was wir getan habendrucken("Der vollständige Inhalt ist:", meine Liste)
Tupel
Ich werde Tupel nicht viel behandeln, da sie in unserem Beispielprogramm nicht verwendet werden und in vielerlei Hinsicht Listen ähneln. Tupel sind wie Listen eine Reihe von Elementen, die gruppiert sind. Der Unterschied besteht darin, dass Tupel nicht veränderbar sind. Sie können die Elemente in einem Tupel nicht direkt ändern, sondern müssen das Tupel neu erstellen. Das bedeutet kein "Anhängen" oder "Pop" oder andere Dinge, die direkt Änderungen am Inhalt des Tupels vornehmen. Wenn es hilft, können Sie sich Tupel als schreibgeschützte Liste vorstellen (obwohl das wirklich nicht sehr genau ist).
Wörterbücher
Diese liebe ich. Als ich zum ersten Mal über Wörterbücher unterrichtet wurde, erinnere ich mich, dass ich etwas in der Richtung dachte: "Nun.. Ich denke, das könnte nützlich sein... manchmal". Innerhalb einer Woche habe ich sie bei jeder Gelegenheit genutzt.
In Python sind Wörterbücher Schlüssel: Wertepaare. Es ist wie eine Liste, außer dass jedes Element aus zwei Teilen besteht, einem Schlüssel und einem Wert. Im folgenden Beispiel werde ich ein Wörterbuch erstellen, das Informationen über mich enthält.
myDict ={}# Schlüsselwert myDict["Name"]="Josch" myDict["Beruf"]="Computerfreak" myDict["Lieblingsessen"]="Hani Special (kein Salat)" myDict["FavBand"]="Alles außer den B-52" myDict["Helden"]="Tom Waits, Kurt Vonnegut, SpaceBat" myDict["FavNummer"]=3.141592 myDict[42]="Es ist auch eine gute Zahl"drucken("Mein Name:", myDict["Name"])drucken("Meine Helden:", myDict["Helden"])drucken("Meine Lieblingsnummer:", myDict["FavNummer"])drucken("Was halte ich von 42?", myDict[42])drucken()# Jetzt ändere ich meine Lieblingsnummer, ohne eine zu erstellen# ganz neues Wörterbuch myDict["FavNummer"] +=100drucken("Meine NEUE Lieblingsnummer:",myDict["FavNummer"])
Aus dem Beispiel sollten einige Dinge klar werden. Erstens können Wörterbücher Daten jeglichen 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 würde den Rahmen dieses Handbuchs sprengen.
Zweitens sind Wörterbücher veränderbar. Sie können Elemente im laufenden Betrieb hinzufügen und entfernen, ohne das Wörterbuch neu zu erstellen oder andere Elemente zu beeinträchtigen.
Wenn Sie sich immer noch nicht sicher sind, wie nützlich Wörterbücher sind, sollten Sie sie verwenden, um die Einstellungen eines Benutzers zu verfolgen. Du könntest ein Wörterbuch namens. haben die Einstellungen und speichern Sie Dinge wie Benutzername, IP-Adresse und Bildschirmauflösung. Jedes Mal, wenn Sie auf diese Daten verweisen müssen, können Sie sie einfach von abrufen Einstellungen["Benutzername"], oder welchen anderen Schlüssel Sie angegeben haben.
Bring alles mit nach Hause
Jetzt kommen wir zur eigentlichen Aktion und erstellen ein nützliches Python 3.0-Programm. Dieses Programm nimmt eine Zahl, die Geld repräsentiert, und sagt Ihnen, wie viel Taschengeld dieser Betrag ausmachen würde. Es ist eine ziemlich gängige Programmierübung und eine gute Möglichkeit, die bisher behandelten Konzepte zu demonstrieren.
Ich sollte Ihnen jetzt sagen, dass dieses Programm NICHT auf die "beste" Weise geschrieben wird, mein Ziel ist es, es mit den grundlegendsten Konzepten und Operationen zu schreiben, die möglich sind. Es gibt mehrere "bessere" Möglichkeiten, dies zu schreiben, z. B. die Verwendung von Funktionen und des Modulus-Operators und einschließlich der Fehlerprüfung, aber diese Version sollte ziemlich einfach zu verstehen sein.
#Holen Sie sich den Geldbetrag gesamt =Eingang("Barbetrag in Dollar eingeben: $")#Das Lesen von Texteingaben setzt Text voraus, also konvertieren#zu dezimal und mit 100 multiplizieren, damit wir Pfennige zählen können#(einfachere Mathematik auf diese Weise) Pfennige =schweben(gesamt) * 100#Wörterbuch erstellen, um unsere Änderungswerte zu speichern Veränderung ={"Viertel": 0,"groschen": 0,"nickel": 0,"Pfennige": 0}#Schleife, bis das gesamte Geld verbucht wurdewährend Pfennige >0: #Subtrahiere jede Münze von der Summe, addiere 1 zum Zählen#für jede Münze und nach dem Zählen die Schleife neu startenWenn Pfennige >=25: Veränderung["Viertel"] +=1 Pfennige -=25fortsetzenelif Pfennige >=10: Veränderung["groschen"] +=1 Pfennige -=10fortsetzenelif Pfennige >=5: Veränderung["nickel"] +=1 Pfennige -=5fortsetzenanders: Veränderung["Pfennige"]=int(Pfennige) Pfennige =0#Drucken Sie endlich unsere Ergebnisse ausdrucken("Q:",Veränderung["Viertel"])drucken("D:",Veränderung["groschen"])drucken("N:",Veränderung["nickel"])drucken("P:",Veränderung["Pfennige"])
Code-Aufschlüsselung: Wir verwenden Eingang
um einen Geldbetrag über die Befehlszeile zu erhalten. Python geht davon aus, dass es sich bei dem, was eingegeben wird, um eine Textfolge und nicht um eine Zahl handelt, also müssen wir es anweisen, diese Eingabe in eine verwendbare Zahl umzuwandeln. Wir hätten die Zahl auch stehen lassen können (zB 15,95), aber stattdessen haben wir sie in Pennies (Multiplikation mit 100) umgerechnet, um die Mathematik einfacher zu machen, damit wir uns nicht um Dezimalpunkte kümmern 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.
Danach kommt die eigentliche Arbeit - die Aufteilung unseres Gesamtgeldes in einzelne Münzen. Dieses Programm verwendet a während
Schleife, um weiterzufahren, bis wir kein Geld mehr von unserer ursprünglichen Eingabe haben. Bei jeder Fahrt durch die Schleife wird der Geldbetrag betrachtet, die größtmögliche Münze abgezogen und die Schleife neu gestartet. Anstatt immer wieder Subtraktionen durchzuführen, wäre dieses Programm wahrscheinlich viel effizienter, wenn wir den Modul-Operator verwendet hätten, aber die Subtraktion ist einfacher zu verstehen.
Wenn wir mit der Schleife fertig sind, müssen wir nur noch unsere Ergebnisse anzeigen.
Python ist weitaus mehr in der Lage, als ich hier behandeln könnte, aber ich hoffe, ich konnte die Grundlagen dafür demonstrieren funktioniert und wie damit schnell und einfach Werkzeuge erstellt werden können, die auf weniger intuitive Weise viel komplizierter wären Sprache.
Affiliate-Offenlegung: Make Tech Easier kann Provisionen für Produkte verdienen, die über unsere Links gekauft wurden, was die Arbeit unterstützt, die wir für unsere Leser leisten.