Vorlesungsskript 06

Grundlegendes zu Python

Wir haben gesehen, wie wir nichtinteraktive Programme auf der Kommandozeile benutzen. Nun wollen wir uns damit beschäftigen, solche Programme selbst zu schreiben, und zwar mit der Programmiersprache Python 3.

Ein Python-Programm können wir schreiben, indem wir eine Datei mit der Endung .py erstellen, sie mit einem Texteditor öffnen und Python-Anweisungen (engl. statements) hineinschreiben. Betrachten wir zunächst ein Beispielprogramm mit dem Namen count_lines.py. Hier ist sein Inhalt:

import sys

line_count = 0
for line in sys.stdin:
    line_count = line_count + 1
print(line_count)

count_lines.py leistet das gleiche wie das Shell-Kommando wc -l: Es zählt die Zeilen im Input. Ausführen können wir Python-Programme mit Hilfe des Python-Interpreters. Der Interpreter ist ein Programm mit dem Namen python3, dem wir ein Python-Programm als Argument übergeben, und der das Programm dann ausführt. Das sieht dann zum Beispiel so aus:

$ cat pride-and-prejudice.txt | python3 count_lines.py
13427

Ohne dass Sie jetzt jede Einzelheit verstehen müssten, sei kurz Schritt für Schritt erklärt, wie das Programm funktioniert:

  1. Das Modul sys wird importiert (das erlaubt unserem Programm u.a., auf seinen Input zuzugreifen).
  2. Bisher haben wir erst 0 Zeilen gezählt. Wir geben der Zahl 0 den Namen line_count. So merkt sich unser Programm, wie viele Zeilen es bisher gezählt hat.
  3. Jetzt starten wir eine Schleife, die die Zeilen im Input eine nach der anderen durchgeht. Der eingerückte Teil des Programms wird mehrfach ausgeführt, für jede Zeile einmal. Jedes Mal nehmen wir den aktuellen line_count, zählen 1 hinzu und weisen nun dem neuen Wert den Namen line_count zu.
  4. Mit Hilfe der print-Funktion geben wir die schließlich erreichte Anzahl der gezählten Zeilen aus.

In den folgenden Vorlesungsskripten lernen wir die Sprache Python besser kennen, um genauer zu verstehen, wie obiges Programm funktioniert.

Der Python-Interpreter

Das Programm python3 ist der so genannte Interpreter für die Programmiersprache Python. Aufgabe eines Interpreters ist es, die Anweisungen in unserem Programm eine nach der anderen in Maschinensprache zu übersetzen und auszuführen. Wenn wir python3 mit einer Python-Datei als Argument aufrufen, arbeitet der Interpreter die Anweisungen automatisch ab. Es ist aber auch möglich, den Python-Interpeter im interaktiven Modus zu starten. Dazu erteilt man das Shell-Kommando python3 ohne Argument und erhält dann ein Prompt, wo man Python-Anweisungen direkt erteilen und ausführen lassen kann. Das ist sehr nützlich, um die Sprache kennenzulernen und Dinge auszuprobieren – oder auch als Helferlein im Alltag, z.B. als Taschenrechner oder Helfer bei schwierigen Entscheidungen, wie im folgenden Beispiel.

$ python3
>>> 19 + 23
42
>>> import random
>>> random.choice(['pasta', 'pizza'])
'pizza'
>>>

Das Python-Prompt sieht so aus: >>> . Was darauf folgt, ist die jeweilige Anweisung, darunter kommt dann der Output. Wie auch Bash-Kommandos werden Python-Anweisungen mit Enter ausgeführt, mit den Pfeiltasten kann man durch bereits ausgeführte Anweisungen blättern, mit Ctrl+U kann man die aktuelle Eingabe abbrechen und mit Ctrl+D kann man den Interpreter beenden und zur Shell zurückkehren.