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.
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.
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.
In diesem Skript schreiben wir
>>>
wenn wir Beispieleingaben im Python Interpreter machen und
$>
wenn wir Befehle auf der Befehlszeile wiedergeben.
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'
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
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!