Einfache Befehlsfolgen

Was werden wir behandeln?
Einzelne Kommandos, die Benutzung von Python als Rechner, der Gebrauch von Klammern zum Erhalt korrekter Ergebnisse und Format-Strings zum Kombinieren von Text und Zahlen. Schließlich sehen wir, wie wir Python von einem Programm aus verlassen können.

Eine einfache Befehlfolge (Sequenz) ist das grundlegendste Programm, das du schreiben kannst. Die einfachste Befehlsfolge ist eine solche, die ein einziges Kommando enthält. Wir werden jetzt einige von diesen ausprobieren. Die Überschrift beschreibt, was wir hinter dem '>>>' Python-Prompt eingeben sollen, der darauf folgende Abschnitt wird erklären, was geschieht.

>>> print 'Hallo ihr dort!'

Der print Befehl ist die Art Python dazu zu bringen, dir ein Ergebnis anzuzeigen. In diesem Fall ist es das Ausrucken einer Folge von Schriftzeichen (characters) H,a,l,l,o, ,i,h,r, ,d,o,r,t,!. Solch eine Sequenz von Zeichen ist in Programmierkreisen bekannt als ein String von Zeichen oder als ein Zeichen-String oder nur als ein einfacher String.

Du kennzeichnest einen String, indem du ihn mit Anführungszeichen umgibst. Du kannst entweder einfache (so wie oben) oder doppelte Anführungszeichen verwenden: "ein String". Dies macht es dir möglich, einen bestimmten Typ von Anführungszeichen innerhalb eines Strings zu verwenden, der von dem anderen Typ umgeben ist - nützlich bei Apostrophen:

>>> print "Monty Python's Flying Circus hat ein ' drin..."

Es können jedoch nicht nur Strings ausgegeben werden:

>>>print 6 + 5

Hier muß das Ergebnis einer arithmetischen Operation ausgegeben werden - wir addierten Sechs und Fünf. Python erkennt die Zahlen als solche und das Pluszeichen und bildet die Summe für uns. Dann druckt es das Ergebnis.

So direkt kann man Python verwenden: es ist ein handlicher 'Taschenrechner'! Versuche ein paar weitere Summen. Benutze einige andere arithmetische Operatoren:

Kombiniere mehrfache Ausdrücke wie:

>>> print ((8 * 4) + (7 - 3)) / (2 + 4)

Beachte die Art und Weise, wie ich die Klammern verwende, um dies Zahlen miteinander zu gruppieren. Was geschieht, wenn du die selbe Sequenz ohne die Klammern eingibst? Dies tut man deshalb, weil Python die Multiplikation und Division vor der Addition und Subtraktion auswertet. Das ist genau das, was man mathematisch erwarten würde, aber nicht unbedingt, was man als Programmierer erwartet. Alle Programmiersprachen haben Regeln, die die Abfolge der Auswertung von Operationen festlegen und das ist bekannt als Operatoren-Vorrang. Du solltest für jede Sprache einen Blick in die Referenzdokumentation werfen, um zu sehen, wie sie arbeitet. Mit Python ist es gewöhnlich so, wie man es logisch und intuitiv vermutet, aber in manchem Falle könnte es nicht sein ...

Als allgemeine Regel gilt, dass es am Sichersten ist, wenn man die Klammern verwendet, um zu gewährleisten, dass man erhält, was man will, wenn man mit langen Serien von Summen wie diesen arbeitet.

Eine andere Sache sei bemerkt:

>>> print 5/2

ergibt eine Ganzzahl (integer) als Ergebnis (hier z.B. 2). Dies geschieht, weil Python sieht, das dies Ganzzahlen sind und annimmt, dass du das beibehalten möchtest. Wenn du Dezimalzahlen als Ergebnis haben willst, schreibe einfach eine Zahl als Dezimale:

>>> print 5/2.0
2.5

Python sieht die 2.0 und wird sich bewußt, daß wir lieber mit gebrochenen Zahlen arbeiten (man bezieht sich in der Computersprache auf Realzahlen oder Fließkommazahlen), so daß es mit einer gebrochenen Zahl als Ergebnis antwortet. Wenn du Ganzzahlen beibehalten willst, kannst du den Rest herausbekommen, indem du das Zeichen % genau wie ein Divisionsoperator verwendest. Python wird den Rest ausdrucken:

>>> print 7/2
3
>>> print 7%2
1
>>> print 7%4
3

% ist bekannt als der Modulus or Mod-Operator und in anderen Sprachen ist er oft als MOD oder so ähnlich zu sehen.

Experimentiere damit und du erkennst bald die Idee, die dahintersteckt.

>>>print 'Das Gesamte ist: ', 23+45

Du hast gesehen, dass wir Strings und Zahlen ausgeben können. Nun kombinieren wir die beiden in einer Printanweisung, wobei diese durch ein Komma getrennt werden. Wir können diese Eigenschaft ausweiten, indem wir sie mit einem nützlichen Python-Trick zur Datenausgabe kombinieren, Formatstring genannt:

>>> print "Die Summe von %d und %d ist: %d" % (7,18,7+18)

In diesem Kommando enthält der Formatstring '%'- Platzhalter. Der Buchstabe 'd' hinter dem % sagt Python, dass eine 'Dezimalzahl' dort plaziert werden muss. Die Werte um die Platzhalter auszufüllen, werden von den Werten innerhalb des Klammerausdruckes, der sich an das alleinstehende %-Zeichen anschließt, erhalten.

Es gibt andere Buchstaben, die hinter die %-Markierung angebracht werden können. Einige von diesen bedeuten:

Die Python-Dokumentation gibt noch viel mehr her...

Du kannst also jedes Python-Objekt mit dem Print-Befehl ausdrucken. Manchmal wird das Ergebnis nicht so sein, wie du es dir erhofft hast (vielleicht nur eine Beschreibung, um welche Art von Objekt es sich handelt), aber du kannst es immer ausdrucken.

>>>import sys

Das ist jetzt etwas Seltsames. Wenn du es ausprobierst, wirst du sehen, dass es scheinbar nichts tut. Aber das ist nicht wirklich wahr. Um zu verstehen, was geschehen ist, musst du einen Blick auf die Architektur von Python werfen ( auch der Nicht-Python-Programmierer kann hier bei mir verweilen, denn er bekommt auch etwas ähnliches!)

Wenn du Python startest, so ist für dich ein Bündel an Befehlen zugänglich, genannt built-ins, weil sie in den Python-Kern eingebaut (built-in) sind. Zusätzlich kann Python die Liste der zugänglichen Befehle durch das Einbringen von Erweiterungs-Modulen (extension modules) erweitern. - Es ist etwa genauso, als wenn du dir ein neues Werkzeug in deinem bevorzugten Heimwerkerladen kaufst und es in deine Werkzeugkiste steckst. Das Werkzeug ist das sys-Teil und die import-Operation steckt es in die Werkzeugkiste.

In der Tat macht dieser Befehl ein komplettes Bündel an neuen 'Werkeugen' in der Form von Python-Befehlen zugänglich, die in einer Datei mit dem Namen 'sys.py' definiert sind. Auf diese Weise kann Python mit allen Arten von klugen Dingen ausgeweitet werden, die nicht in das Grundsystem eingebaut sind. Du kannst sogar deine eigenen Module schaffen und importieren und diese benutzen, genau wie die Module, die du mit Python mitinstalliert hast.

Wie benutzt man nun diese neuen Werkzeuge?

>>>sys.exit()

Hoppla! Was ist jetzt passiert? Einfach nur, dass wir den exit-Befehl ausgeführt haben, der im sys-Modul definiert ist. Dieses Komando veranlasst Python zum Beenden. (Anmerkung: Normalerweise verlässt du Python durch die Eingabe des 'End Of File(EOF)'- Character nach dem >>> prompt - CTRL-Z bei DOS oder CTRL-D bei Unix)

Beachte, dass exit 2 Klammern hinter sich mitführt. Das ist deswegen, weil exit eine Funktion ist, definiert in sys, und wenn wir eine Python-Funktion aufrufen, müssen wir die Klammern anhängen, auch wenn nichts drin steckt!

Versuche die Eingabe von sys.exit ohne die Klammern. Python antwortet damit, dass es dir erzählt, dass exit eine Funktion ist, ohne diese aber auszuführen!

Als letzte Sache ist zu beachten, dass die beiden letzten Befehle nur sinnvoll in Kombination sind. Das heißt, um Python anders zu velassen als durch Eingabe des EOF, muss man eingeben:

import sys
sys.exit()

Dies ist jetzt eine Sequenz von zwei Befehlen! Nun kommen wir der richtigen Programmierung schon etwas näher....

Der Gebrauch von Tcl

Wir können auch in Tcl einzelne Befehle wie diese eingeben. The Tcl-Interpreter wird mit der Eingabe von tclsh80 (unter der Annahme, du hast Tcl v8.0) in der DOS-Kommandozeile gestartet. Das Befehlseingabezeichen (prompt) ist ein '%' . Probiere folgende Beispiele:

% put "Hallo Welt"
Hallo Welt
% put [expr 4 + 6]
10

Beachte, dass im letzten Beispiel der Abschnitt in den eckigen Klammern zuerst ausgewertet wird und dann wird das Ergebnis durch den put-Befehl überbracht. Anders als bei Python kannst du nicht annehmen, dass put das zu interpretieren versucht, was du meinst; es erwartet einen Zeichenstring, und es liegt an dir, ob es wirklich einen bekommt.

Um tclsh80 zu verlassen, tippe exit nach dem Prompt.

Und BASIC auch...

Um BASIC zu starten gib QBASIC im DOS-Prompt ein. In diesem Fall wird die gesamte Programmierumgebung starten. Schau, dass du den Begrüßungsdialog los wirst und dann kannst du im Editierfenster Befehle eingeben und alles was sich im Fenster befindet mit der Benutzung des Run-menüs laufen lassen. Dies hat den Vorteil, dass die Umgebung dir das Editieren der Befehle erlaubt, und sie führt sogar Überprüfungen des Textes während der Eingabe durch.

Gib den folgenden Befehlssatz ein und mache dann ein Run:

PRINT "Hello world"
PRINT 4+6

Du kannst ein Exit wie gewöhnlich über die File|Exit - Menüoption durchführen.

Das war unser erster Blick auf das Programmieren, es war hoffentlich nicht zu qualvoll, oder? Bevor wir damit weitermachen, werfen wir einen Blick auf das Rohmaterial zum Programmieren, die Daten, und was wir damit machen können..

Zur Erinnerung
  • Sogar ein einzelner Befehl ist ein Programm
  • Python macht Mathe meistens so wie du es erwartest
  • um ein gebrochenes Ergebnis zu erhalten must du gebrochene Zahlen verwenden
  • du kannst Text und Zahlen mit dem % Formatoperator kombinieren
  • Beende mit import sys; sys.exit()

zurück  weiter  Inhalt


Bei Fragen und Hinweisen zu dieser Seite sende eine Nachricht auf Englisch an alan.gauld@yahoo.co.uk oder auf Deutsch an bup.schaefer@freenet.de