Lektion 1

Python installieren

Zur Zeit gibt es zwei konkurrierende große Python Versionen, Python 2 und Python 3, die sich in einigen Details voneinander unterscheiden. Auf den meisten Systemen, die Python bereits vorinstalliert haben, wird Python 2 verwendet, deswegen werden wir unsere Übungen auf diese Version stützen. Unter anderem folgende Webseiten erklären, wie man Python auf seinem Rechner installiert.

http://wiki.python.org/moin/BeginnersGuide/Download
http://docs.python.org/using/index.html

Linux und Mac Nutzer müssen wahrscheinlich nichts installieren. Um Python zu benutzen, muss man außerdem noch wissen, wie man eine Befehlszeile öffnet und wie man auf der Befehlszeile das Verzeichnis wechselt. Das ist je nach verwendetem Betriebssystem ein bisschen unterschiedlich, aber immer nicht besonders schwierig. Unter Windows kann man zum Beispiel Win+r drücken und cmd im erscheinenden Dialog starten. Google ist hilfreich.

Texteditor

Um Programmcode zu schreiben, benötigt man einen Texteditor. Es gibt zahlreiche kostenlose Alternativen für alle Betriebssysteme. Unter Linux sollten bereits Kate oder Gedit installiert sein und auf dem Mac kann man Textwrangler benutzen. Natürlich steht es jedem frei nach Gusto auch einen anderen Editor zu installieren.

Python unter Windows

Nachdem man den Windows Installer von http://www.python.org/download/ installiert hat, kann man aus dem Startmenü IDLE starten, eine Python GUI. Damit kann man mit dem Interpreter rumspielen (es entspricht dem Aufruf von python unter Linux).

Will man ein Programm erstellen, so muss man zuerst eine .py-Datei anlegen. Das kann sich mitunter auf Windows als schwierig erweisen, weil standardmäßig die Dateiendungen ausgeblendet sind. Man kann sich beispielsweise durch das speichern einer Textdatei als .py-Datei aus dem Editor heraus behelfen.

Hat man nun eine .py-Datei angelegt, so kann man sie durch Rechtsklick->Mit IDLE bearbeiten in IDLE öffnen und bearbeiten. Dann wird IDLE als Texteditor benutzt und bietet unter anderem automatisches Syntaxhighlighting. Will man sein geschriebenes Programm ausprobieren, dann drückt man F5. Dies startet den Python Interpreter, führt zuerst das Programm aus und lässt danach weitere Eingaben zu.

Notation

In diesem Skript schreiben wir

>>> 

wenn wir Beispieleingaben im Python Interpreter machen und

$>

wenn wir Befehle auf der Befehlszeile wiedergeben.

Spielen mit dem Interpreter

Der Interpreter wird, so die Installation funktioniert hat, so gestartet

$> python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Man beendet den Interpreter durch Eingeben von quit().

Ich finde es immer ganz nett, wenn man die Sprache erst mal als eine Art Taschenrechner benutzt.

Rechnen geht:

>>> 4 # ganze Zahlen
4
>>> -4 # negative Zahlen
-4
>>> 4.5 # Gleitkommazahlen 
4.5
>>> 42+23 # Grundrechenarten
65
>>> 42-23
19
>>> 42*23
966
>>> 42/23 # Teilen von Ganzzahlen
1
>>> 42.0/23 # Teilen von Gleitkommazahlen
1.826086956521739
>>> 42.0//23 # gerundetes Teilen für Gleitkommazahlen
1.0
>>> 15%4 # Modulo, also Rest beim Teilen
3

Vergleiche gehen auch:

>>> 4>5
False
>>> 5>4
True
>>> 5>5
False
>>> 5>=5
True
>>> 5==5 # Test auf Gleichheit mit == nicht mit =!
True

Wahrheitswerte kann man verknüpfen:

>>> True and False
False
>>> True and True
True
>>> True or False
True
>>> False or False
False
>>> True or True
True
>>> not True
False
>>> not False
True
>>> not (False and False)
True
>>> not False and False
False

Man kann sich Sachen in Variablen merken:

>>> a = 5 + 7 # Zuweisung mit =
>>> a
12
>>> a = 42 + 23
>>> a
65
>>> a = a - 5
>>> a
60
>>> a = True
>>> a
True

Und Strings (dt. “Zeichenketten”) versteht Python auch. Sowohl " als auch ' kann als Stringbegrenzer dienen:

>>> "Hallo Welt"
'Hallo Welt'
>>> 'Hallo Welt'
'Hallo Welt'

Das erste Programm

Man kann im Prinzip alles, was man eben auf in den Interpreter getippt hat, auch in eine Textdatei schreiben und die dann ausführen, indem man in das Verzeichnis wechselt, in dem die Datei liegt und python aufruft.


test.py

5
123+123
a = 5
a = a+7

Allerdings ist das Ausführen unspektakulär, weil keine automatische Ausgabe der Werte erfolgt:

$> python test.py
$>

Ausgaben macht man mit dem Befehl print. Das funktioniert auch auf der Befehlszeile, ist aber redundant:

>>> print 5
5

Man kann mehrere Werte durch Leerzeichen getrennt ausgeben:

>>> print 5, 'Hallo', -42
5 Hallo -42

Jetzt können wir unser erstes richtiges Programm schreiben.


hallo.py

print 'Hallo Welt'

Es produziert die erwartete Ausgabe.

$> python hallo.py
Hallo Welt

Man kann auch ohne weiteres Zeichenketten vom Benutzer einlesen und in einer Variablen speichern.


name.py

name = raw_input('Wie ist dein Name?')
print "Hallo", name

Das Argument für raw_input() ist optional. Die Funktion raw_input() liefert eine Zeichenkette zurück, wenn man eine Zahl haben möchte, muss man den Rückgabewert entsprechend konvertieren. Dazu benutzt man die Funktion int() bzw. float().

>>> int("5")
5
>>> float("5")
5.0

Verzweigungen, Schleifen

Damit der Programmablauf spannender wird, braucht man Bedingungen. In Python funktioniert das mit if


n = int(raw_input('Eine Zahl bitte. '))
if n%2 == 0:
    print n, ' ist gerade'
else:
    print n, ' ist ungerade

Nach dem if folgt eine beliebige Bedingung die zu True oder False ausgewertet werden kann. Im Beispiel testen wir, ob n ohne Rest durch 2 teilbar ist. Wenn die Bedingung wahr ist, wird der erste Block ausgeführt, ansonsten der else Block. Das else ist optional. Man beachte die Einrückung: Python identifiziert Blöcke an Hand der Einrückung. Man kann entweder Leerzeichen oder Tabs benutzen, darf sie aber nie mischen (Lektüre dazu).

Es ist auch möglich mehr als eine Bedingung zu testen


n = int(raw_input('Eine Zahl bitte. '))
if n%2 == 0:
    print n
    print ' ist gerade'
elif n%3 == 0:
    print n
    print ' ist durch 3 teilbar'
else:
    print n, ' ist weder gerade, noch durch drei teilbar' 

Dabei werden die Bedingungen von oben nach unten durchgetestet und der erste Block, bei dem die Bedingung True liefert, wird ausgeführt. Gibt man 6 ein, folgt also die Ausgabe “6 ist gerade”, nicht aber “6 ist durch 3 teilbar”, obwohl natürlich beides zutrifft.

Wenn man einen Teil des Programms mehr als einmal ausführen möchte, benötigt man Schleifen. Wir lernen zunächst nur die while-Schleife.


while.py

i = 0
while i<=5:
    print i
    i = i+1

$> python while.py
0
1
2
3
4
5

Nach dem while folgt wieder ein Ausdruck, der zu True oder zu False ausgewertet werden kann. Im Beispiel testen wir, ob die Variable i nicht größer als 5 ist. Bevor der Block der Schleife ausgewertet wird, wird getestet, ob die Bedingung wahr ist. Nachdem der Schleifenblock durchlaufen ist, springt die Ausführung wieder an der Anfang und die Bedingung wird erneut ausgewertet. Das wiederholt sich, solange die Bedingung wahr bleibt. Potentiell unendlich oft!