====== Python-Befehle ====== Hier entsteht nach und nach eine Liste von grundlegende Python-Befehlen. ===== Kommentare ===== Kommentare werden mit dem Zeichen ''#'' eingeleitet. ===== Wertzuweisungen und Operationen ===== ==== Operatoren ==== Folgende Operationen können auf alle numerischen Typen angewandt werden: ^Operation ^Beschreibung^ |x + y |Addition| |x - y |Subtraktion| |x * y |Multiplikation| |x / y |Division| |x %%**%% y |Potenz (x hoch y)| |x % y |Modulo (x mod y)| Bei Ganzzahlen ist das Ergebnis einer Division ebenfalls eine Ganzzahl. Daher wird 7/4 zu 1 ausgewertet und nicht zu 1.75. Der Modulo-Operator gibt den Rest der Division x / y zurück. Zum Beispiel ergibt 7 % 4 den Wert 3. Mit dem Gleichheitszeichen werden Werte zugewiesen. ==== Vergleichsoperatoren ==== ^Operation ^Beschreibung^ |x < y |Kleiner als | |x > y |Größer als | |x == y |Gleich | |x != y |Ungleich (auch: x <> y) | |x >= y |Größer-gleich als | |x <= y |Kleiner-gleich als | ==== Beispiel: Zinseszins ==== das folgende Beispielprogramm zur Berechnung von Zinseszinsen soll die Wertzuweisung verdeutlichen: kapital = 1000 # Anfangskapital zinssatz = 0.05 # Zinssatz anzahljahre = 3 # Anzahl von Jahren jahr = 1 while jahr <= anzahljahre: # (die while-Anweisung wird weiter unten erklärt) kapital = kapital*(1+zinssatz) # das Kapital wird mit 1.05 multipliziert und # das Ergebnis der Variablen Kapital zugewiesen print jahr, kapital # (die print-Anweisung wird weiter unten erklärt) jahr = jahr + 1 # der Wert der Variablen jahr wird um 1 erhöht Die Ausgabe sieht wie folgt aus: 1 1050.0 2 1102.5 3 1157.625 Beachte: Zu Beginn des Programms ist ''kapital'' eine Variable vom Typ Ganzzahl, später eine Fließkommazahl. ===== Ein- und Ausgabe ===== ==== input ==== liest eine Tastatureingabe ein. ==== print ==== erzeugt eine Ausgabe. name = input("Wie ist dein Name? ") print "Hallo ", name, ", viel Spaß mit Python!" ==== Formatierungsstrings ==== Die unerwünschten Leerzeichen vermeidet man mit dem Formatierungsstring ''%s''. print "Hallo %s, viel Spaß mit Python!" % (name) Auch die Ausgabe des Beipiels Zinseszinsrechnung kann mit Formatierungsstrings etwas verschönert werden: print "%3d %0.2f" % (jahr, kapital) bewirkt, dass die Ganzzahl rechtsbündig in einer Spalte der Breite 3 und die Kommazahl mit 2 Nachkommastellen ausgegeben wird: 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28 ===== Fallunterscheidungen ===== ==== if ... else ==== Mit den Anweisungen ''if'' und ''else'' können einfache Tests durchgeführt werden: # Berechne das Maximum (z) von a und b. if a < b: z = b else: z = a Die Rümpfe der ''if''- und ''else''-Klauseln werden durch Einrückung angegeben, wobei die ''else''-Klausel optional ist. Um eine leere Klausel zu erhalten, verwendet man die ''pass''-Anweisung wie folgt: if a < b: pass # Tue nichts. else: z = a Boolesche Ausdrücke können mit Hilfe der Schlüsselwörter ''or'', ''and'' und ''not'' gebildet werden: if b >= a and b < c: print "b liegt zwischen a und c." if not (b < a or b > c): print "b liegt immer noch zwischen a und c." ==== elif ==== ===== Schleifen ===== ==== for-Schleife ==== Bei der for-Anweisung wird über die Elemente einer Sequenz iteriert. Im folgenden Beispiel durchläuft der Zähler i die Zahlen von 1 bis 9: for i in range(1, 10): print "2 hoch %d ist %d." % (i, 2**i) Die Funktion range(i, j) erzeugt eine Liste von ganzen Zahlen mit Werten von i bis j-1. Falls der Startwert weggelassen wird, wird Null dafür angenommen. Eine Schrittweite kann als optionales drittes Argument angegeben werden, z.B. so: a = range(5) # a = [0, 1, 2, 3, 4] b = range(1, 8) # b = [1, 2, 3, 4, 5, 6, 7] c = range(0, 14, 3) # c = [0, 3, 6, 9, 12] d = range(8, 1, -1) # d = [8, 7, 6, 5, 4, 3, 2] Die for-Anweisung kann über beliebige Sequenz-Typen iterieren und ist nicht etwa nur auf Ganzzahlen beschränkt: a = "Grundkurs Informatik" # Gib die Zeichen in a aus. for c in a: print c ==== while-Schleife ==== Die while-Schleife wurde bereits in dem obigen Beispiel zur Zinseszinsrechnung benutzt. Der Schleifenkörper wird so oft durchlaufen, wie die Bedingung erfüllt ist. Im folgenden Beispiel wird das Programm so oft wiederholt, bis auf die Frage eine andere Antwort als "ja" gegeben wird. antwort = "ja" while (antwort == "ja"): # ... # hier steht der Teil, der wiederholt wird # ... antwort = raw_input("Noch einmal wiederholen (ja/nein)?" ===== Unterprogramme ===== ==== Prozeduren ==== Prozeduren werden mit der ''def''-Anweisung definiert. def zaehleBisNeun(): for i in range(10): print i, Die Prozedur ''zaehleBisNeun'' gibt die Zahlen von 0 bis 9 aus, wenn man sie z.B. von der Kommandozeile wie folgt aufruft: >>> zaehleBisNeun() 0 1 2 3 4 5 6 7 8 9 Es ist möglich, Prozeduren einen Parameter mitzugeben: def zaehleBis(zahl): for i in range(zahl + 1): print i, Der Aufruf ''zaehleBis(1000)'' führt zur Ausgabe der Zahlen von 0 bis 1000. ==== Funktionen ==== Funktionen sind Prozeduren mit einem Rückgabewert. Sie werden genauso definiert wie Prozeduren. Mit der ''return''-Anweisung wird der Rückgabewert festgelegt. def meinMaximum(a,b): if a > b: m = b else: m = a return m Einmal definiert, kann die Funktion ''meinMaximum'' nun wie folgt benutzt werden: x = x + meinMaximum(y , z) print "Das Maximum von 7 und 12 ist",meinMaximum(7,12)