Erste Schritte mit Python

Block 1

Python

Python ist eine moderne, freie Programmiersprache und bietet viele Funktionen die einem Anfänger den Einstieg vereinfachen. Python ist eine interpretierte Sprache. Im Gegensatz zu compilierten Sprachen, werden interpretierte Sprachen nicht direkt vom Computer sondern von einem zusätzlichen Programm, dem Interpreter, ausgeführt. Dadurch werden die Programme zwar etwas langsamer, dafür bist du bei der Entwicklung viel flexibler. Weitere Vorteile vom Python sind:

Python starten

Es gibt viele verschiedene Möglichkeiten mit Python zu arbeiten. Die einfachste ist, eine interaktive Session zu starten. Dafür tippst du einfach

python3

Python gibt einige Infos aus und gibt dir dann den Python-Prompt zurück

>>>

Hinweis: Für den Informatik-Kurs im 2016 haben wir dieses Tutorial auf Python 3 umgestellt, denn Python 3 ist die richtige Sprache für jemanden der neu Python lernt. (Und jemand der Python 2.7 bereits kennt, kann leicht auf Python 3 umstellen.) Wenn du mehr über die Gründe und Unterschiede wissen möchtest, ist Python2 or Python3 ein guter Startpunkt.

Lies als erstes die Ausgabe durch. Wenn du wissen möchtest wie Python entstanden ist, schaue dir den Beginn der "license" an. Starte sonst die interaktive Hilfe und schau dich ein wenig um. Welche Keywords kennt python? Was sagt die Hilfe zum Thema Integers (Integer ist die Bezeichnung für ganze Zahlen)? Es macht nichts, wenn du im Moment nicht jedes Detail verstehst, das in der Hilfe steht. Du darfst aber natürlich gerne bei uns nachfragen. Die Hilfe kannst du einfach mit [enter] wieder beenden.

Aufgaben

Tippe folgende Rechnungen in den Python-Prompt.

  1. 21 + 21
  2. 50 - 8
  3. 14 * 3
  4. 756 / 18
  5. 6**2 + 6 (** bedeutet hoch)

Die letzte Aufgabe kannst du auf zwei Arten eingeben. Entweder du tippst alles in eine Zeile, oder du berechnest erst 6**2 und verwendest anschliessend das Resultat um weiter zu rechnen. Auf das Ergebnis der letzten Zeile kannst du mit _ zugreifen.

Lösung anzeigen

21 + 21 50 - 8 14 * 3 756 / 18 6**2 + 6 # oder 6**2 _ + 6

Einfache Variablen

Mit _ hast du bereits eine erste Variable kennen gelernt. Variablen sind Namen, denen du einem bestimmten Wert zuordnest. _ wird immer automatisch der Wert des letzten Ergebnisses zugewiesen. Du kannst auch selbst Variablen definieren und diese dann in deinen Rechnungen verwenden:

a = 10 b = 6 3*a+2*b

Bei der Wahl des Namens bist du ziemlich frei, einzig Keywords kannst du nicht als Namen verwenden. Ausserdem muss jeder Name mit einem Buchstaben oder einem _ beginnen und darf nur Buchstaben, Ziffern und _ enthalten. Sobald du etwas kompliziertere Rechnungen ausführen möchtest, solltest du aussagekräftige Variablen-Namen verwenden.

Im Beispiel oben, wird nur nach der dritten Zeile etwas auf der Konsole ausgegeben. Python geht davon aus, dass dich das Resultat einer Zuweisung nicht interessiert. Um den Wert einer Variable anzuzeigen hast du zwei Möglichkeiten.

print(a) a # nur in einer interaktiven Session

Hinweis: Der Text hinter # ist ein Kommentar. Python ignoriert bei der Ausführung alles nach einem #. Wir werden auf Kommentare zurückkommen, wenn wir mit dem Erstellen von Skripten beginnen. Vorerst verwende ich sie einfach um Hinweise in Code-Blöcke einzufügen.

Ganze Zahlen und Reelle Zahlen

Soweit hat alles ohne Überraschungen geklappt. Allerdings hast du bei der Division in der Aufgabe oben vielleicht bemerkt, dass dieses Resultat mit einer Kommastelle angezeigt wird. Python unterscheidet zwischen ganzen Zahlen (Integer) und reellen Zahlen (Float). Python interpretiert alle Zahlen, die einen . enthalten als Float. Im Normalfall behält Python den Typ der Zahlen bei Rechenoperationen bei. Bei der Division werden Integer aber in Float umgewandelt. Nur so kann das Resultat sicher korrekt dargestllt werden.

Hinweis: In Python 2.7 ist das Ergebnis einer einfachen Division von zwei Integern wieder ein Integer. 1/2 = 0

Um bei der Division sicher eine ganze Zahl zu erhalten, kannst du // verwenden. Damit schneidet Python die Kommastellen einfach ab.

10/4 # gibt 2.5 10//4 # gibt 2

Mehr zu Float und Integer findest du in der Hilfe. Die Hilfe zu Float enthält insbesondere verschiedene weitere Beispiele wie du Floats eingeben kannst. (help('FLOAT'), [q] um die Hilfe zu beenden)

Module laden

Wenn Python ein brauchbares Werkzeug sein soll, so kann es sicher auch Wurzeln berechnen. Wir würden also erwarten, dass Funktionen wie sqrt(a) (SQuare RooT) oder exp(a) (e hoch a) definiert sind.

sqrt(2) exp(2)

Wie du siehst schlägt das Fehl. Du kannst beides mit der hoch-Notation von oben lösen:

2**(1/2) 2.718**2

Wie versprochen bietet Python aber viele Module die den Funktionsumfang für die verschiedensten Aufgaben erweitern. Hier brauchen wir ein Modul mit mathematischen Funktionen. Dafür gibt es verschiedene Optionen. Das math Modul ist Teil jeder Python installation. Für Projekte an der Uni empfehle ich aber numpy. Entsprechend werden wir in diesem Kurs numpy verwenden.

Es gibt vier verschiedene Arten die Funktionalität eines Moduls zu laden. Je nach Art, musst du auf die neuen Objekte dann unterschiedlich zugreifen. (Objekte, weil Module mehr als nur Funktionen enthalten können.)

# 1) das Modul als Ganzes laden import numpy numpy.sqrt(2) numpy.exp(2) # 2) das Modul als Ganzes laden aber mit alias import numpy as np np.sqrt(2) np.exp(2) # 3) einzelne Objekte des Moduls laden from numpy import sqrt, exp sqrt(2) exp(2) # 4) alle Objekte aus dem Modul laden from numpy import * sqrt(2) exp(2)

Für einfache Aufgaben und das Arbeiten in der interaktiven Shell ist Version (4) völlig in Ordnung. In diesem Tutorial werden wir meist ebenfalls diese Schreibweise verwenden. Wenn du komplexere Programme schreibst und besonders wenn du mehrere Import-Befehle brauchst, solltest du auf eine der anderen Versionen zurückgreifen. So können sich verschiedene Module nicht in die Quere kommen. import Version (3) und (4) würden bereits bestehende sqrt oder exp Funktionen ersetzen. Das ist oft nicht, was du möchtest.

Um herauszufinden, was dir dein neues Modul alles bietet kannst du die Auto-Completion von Python verwenden. Lade das numpy-Modul mit Methode (1). Tippe anschliessend numpy. und dann die [tab] Taste (evtl. zwei mal). Wie du siehst, stehen dir nun viele neue Funktionen zur Verfügung. Einige davon werden wir im Verlauf dieses Tutorials noch genauer anschauen. Wichtig sind sicher noch die definierten Konstanten.

numpy.pi numpy.e numpy.inf

wie würdest du auf die beiden Konstanten zugreifen, wenn du das numpy-Modul mit den Methoden (2), (3) oder (4) geladen hast?

Auch zu den neuen Objekten kannst du dir nun die Hilfe anzeigen lassen:

help(numpy.sqrt)

Beachte, dass du hier keine '' brauchst. Du möchtest Hilfe zu einem bestehenden Objekt nicht zu einem Thema.

Wenn du möchtest, kannst du nun die verschiedenen Funktionen des numpy-Moduls noch ausprobieren. Schliesslich kannst du Python mit exit() oder [ctrl]+[d] wieder beenden.