denken == gratis?

Python Tutorial

Python bietet die meisten Typen, welche es auch in anderen Sprachen gibt, wie zum Beispiel Strings, Integers oder Booleans - jedoch gibt es bei diesen Eigenheiten, welche einiges vereinfachen können. So ist es bei Python nicht nötig, eine Variable mit ihrem Typen zu definieren, stattdessen kann eine Variable jeden Typ annehmen, indem sie überschrieben wird. Integers sind Ganzzahlwerte, Strings sind Textwerte, und Booleans sind Wahrheitswerte, für eine genauere Ausführung empfehle ich eine Suche durch das Internet, da das hier den Rahmen sprengen würde. Python sucht sich den Typen selber aus, somit kann eine Variable einfach immer wieder neu belegt werden, wie hier:

variable = "Hello World"
variable = 123
variable = True

Hier ist festzustellen, dass wenn man nun die Variable variable ausgibt, sie nun den Wert True angenommen hat. Booleans werden in Python am Anfang mit Großbuchstaben geschrieben, anders als zum Beispiel in C#. Auch zu sehen ist, dass am Ende einer Zeile kein Semikolon gesetzt wird, denn bei Python wird alles nur über Zeilen und Einschiebungen gemacht. Eine Funktion wird in Python also via:

def Funktion(Argumente):
    # Code

definiert. Das Schlüsselwort def dient dabei zur Markierung der Funktion, danach folgt der Name der Funktion zum Aufruf, und in den Klammern können Argumente mitgegeben werden, sofern dies nötig ist. Will man also eine Funktion schreiben, welche zwei Zahlen addiert, und diese dann auf der Konsole ausgibt und den Wert zurückgibt, könnte man diese so schreiben:

def Summe(a, b):
    c = a + b
    print c
    return c

In der ersten Zeile wird hier die Funktion addiere definiert, und es werden ihr zwei Zahlen übergeben, wie diese heißen ist egal, in der Funktion ist ihr Name dann so, wie sie in den Klammern definiert werden. 

In der zweiten Zeile wird eine weitere Variable definiert (c), welche die Summe aus a und b ist. 

in der dritten Zeile wird der Wert von c auf der Konsole durch das Schlüsselwort print ausgegeben. In print immer nur ein Typ ausgegeben werden, will man also einen Text mit einer Zahl ausgeben, so muss die Zahl durch die Funktion str(Zahl) zu einem String umgewandelt werden. 

In der vierten Zeile wird der Wert von c über das Schlüsselwort return an den Punkt des Aufrufs zurückgegeben.

Um eine Funktion aufzurufen, wird ihr Name mit den Klammern, und sofern diese Argumente erwartet mit den Argumenten durch Kommata getrennt, aufgeschrieben. Damit wird die Funktion bereits gestartet.

Kommentare, also Text mit dem der Code besser verstanden werden kann, markiert man mit der Raute (#).

# dies ist ein Kommentar

Listen

... sind Variablen, welche eine Sammlung von verschiedenen Einträgen haben, welche sogar unterschiedliche Typen haben können. Diese können dann unter ihrem Index abgefragt werden. In Python können Listen beliebig manipuliert werden. Zum Beispiel:

liste = [1, "Hello", True]
print liste[0]
# 1
print liste[1]
# Hello
liste.append("Ich wurde hinzugefügt")
print liste
# [1, "Hello", True, "Ich wurde hinzugefügt"]
print len(liste)
# 4

Schleifen und Anweisungen

In Python gibt es verschiedene Schleifen, die wohl bekannteste ist die For-Schleife, welche durch ein Objekt iteriert, und damit auch eine gewisse Anzahl wiederholt wird. Dies kann entweder durch eine Liste geschehen, welche durch eckige Klammern gesetzt wird und so kann für jedes Element in der Liste etwas ausgeführt werden, wie zum Beispiel:

meine_liste = [1, 2, 3, 4, 5]

for zahl in meine_liste:
    print zahl

Oben wurde eine Liste mit den Zahlen von 1 bis 5 erstellt, Listen können beliebig erweitert und manipuliert werden. In der For-Schleife wird nach dem Schlüsselwort for  eine Variable definiert, der Name spielt keine Rolle, und dann wird durch in meine_liste die Anweisung gegeben, dass die Schleife durch die Liste iterieren soll.

Um die Schleife einfach nur eine gegebene Anzahl oft wiederholt werden soll, so kann man dies anstatt der Liste auch über die Funktion range() tun. Dabei kann einfach nur eine Zahl übergeben werden, so wird von 0 bis zu der Zahl gezählt, ansonsten kann man einen Start und einen Stopp-Wert übergeben, sowie auch eine Schrittweite, welche optional ist. Die Definition sagt range([start], stop[, step]).

Eine weitere Schleife wäre die While-Schleife, welche so lange wiederholt, bis die folgende Anweisung nicht mehr Wahr ist. Will man also eine unendliche Schleife, so kann man einfach

while True:
    #code

ausführen. 

If-Anweisungen bestimmen, was der Name schon sagt, ob eine Funktion ausgeführt wird, oder nicht. Zum Beispiel ob ein Code ausgeführt wird, wenn eine Zahl größer als 0 ist, dann gib sie aus, ansonsten gib den Text "Unter null" aus:

zahl = -1
if  zahl > 0:
    print zahl
else:
    print "Die Zahl ist kleiner als 0"

Dabei gibt es die Schlüsselwörter if, elif und else. if benutzt man, um die Anweisung zu starten, gibt es mehrere Möglichkeiten, so führt man die Anweisung mit elif weiter, was für else if steht, also "sonst wenn". Es ist nicht notwendig elif und else zu benutzen, allein if reicht in manchen fällen bereits aus, um etwas zu prüfen. Es ist natürlich auch möglich Anweisungen zu schachteln, also in einer Abfrage eine weitere Abfrage zu starten.

Die Try-Schleife wird benutzt, um einen Code auszuführen, und Fehler abzufangen, beispielsweise bei einer Division, um den Fehler der Division durch null abzufangen. Als Beispiel:

a = 10
b = 0
try:
    c = a / b
    print c
catch ZeroDivisionError:
    print "Man kann nicht durch 0 teilen!"

Es reicht bereits den except-Block zu starten, ohne den ZeroDivisionError anzugeben, jedoch kann man bei verschiedenen Fehlern durch unterschiedliche Handlungen reagieren wenn man es spezifiziert.

Module

Python ist offen für viele Module, also Packete, welche installiert werden können um Code von anderen zu nutzen und damit den eigenen zu erleichtern. Solche Packete können zum Beispiel urllib2 sein, um Webrequests durchzuführen, math für verschiedene mathematische (komplexere) Operationen, oder auch viele mehr. Diese Packete werden über pip installiert, häufig reicht eine Google Suche oder auch ein Blick auf PyPi. Um ein Packet in den Code zu integrieren reicht ein import Befehl (in der Kopfzeile des Programmes), dabei kann man sowohl das ganze Packet, als auch nur Teile davon nutzen, wie hier:

# importieren des ganzen Moduls
import urllib2
# nur sleep von time importieren
from time import sleep

# code