Hallo Python
LIN8080

Nun, Python ist eine Schlange, nicht wahr? Falsch, oder doch nicht? Hm. Python ist auch eine Scriptsprache. Oder eine Programmiersprache, oder ein Programm System, oder lieber ein Modulbaukasten? Jeder, der diese Fragen nicht eindeutig beantworten kann, kennt von dieser Python nicht sonderlich viel. Dem kann abgeholfen werden. Zum Beispiel mit diesem Text hier.

Als erstes wird es unumgänglich, sich eine Python zu beschaffen. Die liegt bei www.python.org rum und kann auf die eigene Festplatte übertragen werden. Das macht 5 MByte für `py152.exe`, 1,6 MByte für `py152a.exe`, 1,8 MByte für `tcl805.exe` und 1,5 MB für `html.zip`, die Dokumente. Oder etwa 30 Minuten Onlinezeit.

Als zweites wird das alles extrahiert und installiert. Unter Windows geht's so gut wie von alleine, einschliesslich der Path-Erweiterung in der Autoexec. Unter Unix findet man ein sehr detailiertes Readme, oh, howtodo, und für die Macs gibt's extra Files zum Download.

Hat man das alles, kann's los gehn. Normal wird das als Komandozeilen Interpreter eingesetzt. Für Windows gibt's aber ein extra Paket, das hat ein paar kleine Unterschiede, läuft aber sehr bequem.

Python läuft in einer DOS-Box und das bringt den Vorteil, dass nebenan der Browser mit den HTML-Dokus mitlaufen kann. Für Neueinsteiger ein grosser Vorteil. Man kann in aller Ruhe die Dokus lesen, und zugleich dies oder das mal ausprobieren. Zum Teil recht amüsant.

Nach einigen Versuchen wird man schnell bemerken, dass es eine Schlange ist. Will man in ihren Innereien rumwühlen, ist ein ausgibiges "wie geht das" Studieren kaum zu vermeiden. Ein mühevolles Unternehmen, aber eines, das sich durchaus lohnt. Das wird man ebenfalls sehr schnell bemerken, denn diese Python macht buchstäblich vor nichts halt. Auch nicht vor sich selber! Ob das nun ein simples "Hallo Welt" ist oder ein Online-Script, es geht alles, was man sich vorstellen kann, und es ist relativ schnell fertig.

Verglichen mit anderen Programmier-Mitteln benötigt Python überraschend wenig Code für seine Aktionen. Aber genug der blühenden Vorworte, zum weiteren wird Python in der DOS-Box losgelassen. Das geschieht einfach durch Anklicken des Icons. Davon werden gleich drei Stück auf Wunsch beim Setup/Install angelegt. Man kann sich auch ein Icon für die DOS-Box auf dem Desktop einrichten und so Python gleich mit einem *.py Programm starten.

Python meldet sich normal mit einem Begrüssungstext: "`Python 1.5.2 (#0, Apr 13 1999, 10:51:21) [MSC 32 bit (Intel)] on win32 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam`". Darunter schreibt es drei Pfeile `>>>`. Man sitzt vor einer aktionsbereiten Schlange.

Ein einfaches Beispiel: Man gibt eine Variable ein und weist ihr einen Wert zu, das sieht dann so aus: `step=30`, das wars. Mit der Eingabe `step` wird als Return dann 30 ausgegeben. Mit `step=step+20` (oder step=20+step) hat die Variable step einen neuen Wert, `step` (+ Enter Taste) bringt 50 zurück.

Es ist gewöhnungsbedürftig. Aber es gibt eigentlich nur zwei Möglichkeiten: Man löscht das gleich wieder, oder man verliebt sich in Python. Zu Beginn kann man sich vorstellen, diese Schlange bestehe aus einer grossen Zahl an Black Boxes, in die man etwas hineinschiebt, dann passiert zunächst irgendwas damit und schliesslich kommt irgendwas heraus.

Diese Black Boxes sind Module. Im Verzeichnissbaum sind das die Dateien, die auf *.py enden. Und so ein Modul muss dann auch erstmal geladen (öh, geschrieben) werden, bevor man damit etwas anstellen kann.

Geladen wird ein Modul mit der import Anweisung, gefolgt vom Modulnamen. Also, `import sys`. Dafür gibt's keine Erfolgsmeldung, wohl aber eine Fehlermeldung, wenn etwas nicht stimmt. Normalerweise wird das Modul sys automatisch geladen, es ist aber ein Packet, also eine Modulsammlung, die man da vor sich hat.

Ein neueres Python Modul heißt errno, also `import errno`. Es ist ein plattformabhängiges Windows spezifisches Modul. Nun kann man damit bereits Dateien öffnen, etwas reinschreiben und wieder schliessen. Um aber nicht jedesmal die lange Syntax eintippen zu müssen, setzt man eine Variable dafür, f (weil's in den Dokus auch so heißt). Also, `f=open("/temp/python.txt")`. Klar, man sollte auf Laufwerk C: ein Verzeichnis temp haben und darin eine Datei namens python.txt, weil C: ist ein default Wert (voreingestellter Wert) und temp ein besserer Papierkorb. Gibt man nun `f` ein, kommt "`open file '/temp/python.txt', mode 'r' at 7802b0`" zurück. Der Wert der Variablen f eben, egal ob string oder float.

Wichtig ist mode r für "read" (lesen), eine default Vorgabe. Man kann also nur auslesen, nicht schreiben. Dazu muss man Python sagen, dass man in die Datei etwas hineinschreiben will. Das geschieht einfach durch anhängen von w für "write".

Um aber gleich ein wichtiges Deteil herauszuheben: Es ist "open at 7802b0". Das ist eine Speicheradresse. Klar, je mehr Python anstellt, desto schneller läuft der Speicher voll. Bei intensiver Python Nutzung ist das unbedingt zu vermeiden, also werden nicht mehr benötigte Teile sogleich wieder entsorgt, d.h. `f.close()` und schon ist python.txt wieder geschlossen. Man sieht eine sehr bequeme Schreibweise, die an Java angelehnt ist. Der Punkt dient als Verknüpfung. f.close meint das, was als Wert für f momentan gültig ist, wird wegen () ohne weiteres geschlossen.

Eine Neudeffinition von f überschreibt das alte f, also tippt man `f=open("/temp/python.txt", "w")` ein, diesmal mit w für "write" in Anführungszeichen. Ab jetzt kann man an den f was dranhängen. Also, `f.append "/n Zusatz Text"`. Damit wird in die Datei Python.txt in einer neuen Zeile die Überschrift "Zusatz Text" eingefügt.

Ob man das jetzt saven muss? Python macht das beim close automatisch, die default Werte. Einfach mal ausprobieren, also `f.print()`, dem Drucker reinwürgen. In der Klammer kann man ja noch sagen, welcher Font dazu verwendet werden soll. Und weil Python.txt rein hypothetisch den "Hallo Welt" Slogan enthält, steht darunter Zusatz Text, äh, kein Zusatz Text?

Ach so ja, man sagt Python, was Zusatz Text sein soll. Also, `Zusatz=denk mal` und `Text=f`. Alles klar? Wenn's Papier aus ist meldet sich der Drucker (hoffentlich), oder doch nicht... :)

LIN8080