Das Ziel dieses Kapitels ist es, Dich mit den Grundlagen der Python-Programmierung vertraut zu machen und erste Programme zu schreiben.

Das Erlernen der Programmiersprache Python ist wesentlich einfacher als das Erlernen einer Fremdsprache. Alle Programmiersprachen dieser Welt, und so auch Python, bestehen, im Gegensatz zu natürlichen Sprachen, aus gerade mal ein paar Dutzend Vokabeln und Grammatikregeln. Vieles von dem, was Du hier lernen wirst, kannst Du auf andere Programmiersprachen, wie beispielsweise Java oder C++, übertragen. Konkret lernst Du hier die Programmiersprache Python 3. Das ist die aktuelle Version dieser Programmiersprache. Solltest Du sie noch nicht installiert haben, tue das jetzt bitte. Ich habe Dir dazu eine Installationsanleitung bereitgestellt.

Python ist weit verbreitet und sehr mächtig. Wenn Du diese Programmiersprache beherrschst, kannst Du damit fast alles programmieren, was Dich interessiert. Belastbare Kenntnisse in der Python-Programmierung können sich auch beruflich vorteilhaft auswirken.

Dein erstes Programm

Bitte akzeptiere YouTube-Cookies, um dieses Video abzuspielen. Wenn Du das akzeptierst, greifst Du auf Inhalte von YouTube zu, einem Dienst, der von einer externen dritten Partei bereitgestellt wird.

YouTube-Datenschutzrichtlinie

Wenn Du diesen Hinweis akzeptierst, wird Deine Wahl gespeichert und die Seite wird aktualisiert.

Seit den 1970er-Jahren ist es Tradition, dass das erste Programm in einer neu zu erlernenden Programmiersprache das sogenannte „Hallo, Welt!“-Programm ist. Auch ich möchte mit dieser Tradition nicht brechen und Deinen Einstieg in die Python-Programmierung damit beginnen. Das Programm heißt so, weil es die Zeichenkette „Hallo, Welt!“ auf der Standardausgabe ausgibt. Die Standardausgabe ist, sofern keine Umlenkung vorgenommen wurde, die Ausgabe des Terminalfensters. Bei Microsoft Windows ist das die Eingabeaufforderung oder die Terminal-App, wie das Terminal seit Windows 11 heißt. Unter macOS und Gnu/Linux heißt die entsprechende Anwendung in der Regel einfach Terminal. – In allen Fällen handelt es sich um eine Kommandozeilenanwendung, die textorientiert ist und wir Kommandos über die Tastatur eingeben, um dem Computer mitzuteilen, was er für uns tun soll.

Entwicklungszyklus der Python-Programmierung

Die Erstellung eines Python-Programms können wir grundsätzlich in zwei Schritte gliedern:

  1. Erfassen des Programmcodes in einer Datei mit der Dateiendung .py
  2. Ausführen des Programms

Für Schritt 1 beachte bitte die Hinweise, die ich Dir im Beitrag „Konventionen für die portable Python-Programmierung“ zusammengestellt habe. Es ist wichtig, dass Du Deine Entwicklungsumgebung, ob einfacher Texteditor oder IDE (Integrated Development Environment) richtig konfiguriert hast.

Tippe den Programmcode des zu implementierenden Programms in den Editor und speichere die Datei ab. In unserem ersten Beispiel soll die Datei hallowelt.py heißen. Achte beim Speichern auf die Zeichensatz-Kodierung (UTF-8) und die Zeilenende-Kodierung (Line Feed).

Ist das geschehen, kannst Du Dein Programm starten und ausführen.

Wenn das Programm funktioniert, ist alles gut. Bekommst Du Fehlermeldungen oder das Programm tut etwas Unerwartetes, gehst Du zu Schritt 1 zurück und editierst Deinen Programmcode. Die Python-Programmierung gestaltet sich also als Kreislauf dieser sich stets wiederholenden Schrittfolge. Das ist der Entwicklungszyklus der Python-Programmierung.

Programmcode

Der Programmcode für das „Hallo, Welt!“-Programm ist sehr einfach.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Ausgabe der Zeichenkette "Hallo, Welt!"
print("Hallo, Welt!")
 

Die Zeilennummern tippst Du bitte nicht mit ab. Ich gebe Sie hier aus, um mich bei Erläuterungen leichter auf den entsprechenden Programmcode beziehen zu können.

Die Zeilen 1 und 2 enthalten die „magischen Zeilen“, die ich Dir im oben verlinkten Beitrag zur portablen Python-Programmierung erläutert habe.

Mithilfe von Leerzeilen können wir unseren Programmen Struktur verleihen, um den Programmtext einfacher lesen zu können.

Kommentare

In Zeile 4 steht ein sogenannter Kommentar. Kommentare beginnen mit einem #-Zeichen und reichen bis an das Zeilenende. Kommentare sind ausschließlich für den menschlichen Leser eines Programmtextes gedacht. Sie dienen dazu, den Code in seiner Funktionsweise zu erläutern. Bei diesem ersten Programm ist das sicherlich nicht zwingend notwendig. Ich werde mich aber bemühen, meine hier vorgestellten Programme hinreichend zu kommentieren, sodass Du (möglichst) auch ohne weiteren Erläuterungstext, den Inhalt und die Funktion der vorgestellten Programme verstehen kannst.

Kommentare haben keinen in der Python-Programmierung keinen Einfluss auf die Programmausführung. Kommentare werden von Python-Interpreter überlesen.

Ausgabeanweisung

print() ist ein Funktion. Das ist ein Stück Programmcode, welches Dritte freundlicherweise geschrieben haben. Dieser Programmcode hat einen Namen. Über den Namen rufen wir ihn auf, um ihn auszuführen. In Bälde wirst Du selbst Funktionen schreiben können.

Der print()-Funktion können wir Parameter in den runden Klammern übergeben. Aus Sicht der Funktion nennen wir diese Parameter auch Aktualparameter. Aus Sicht des Aufrufers sprechen wir dagegen gern von Argumenten, mit welchen wir die Funktion belegen. Parameter können von einer Funktion verarbeitet werden und/oder steuern deren Ablauf. print() gibt ohne Parameter eine Leerzeile aus. Wir können die Funktion jedoch mit Argumenten belegen. Das kann ein Argument sein, gerne aber auch mehrere. Mehrere Argumente werden bei der Übergabe durch Kommata getrennt notiert. print() akzeptiert Objekte und Steuerungsparameter – zu letzteren später mehr. Im Moment konzentrieren wir uns auf die Objekte, die wir print() übergeben können. Diese Objekte gibt print() als Zeichenkette auf der Standardausgabe aus. Im konkreten Fall ist das die Zeichenkette „Hallo, Welt!“.

Zeichenketten werden in Python paarweise in einfachen oder doppelten Anführungszeichen notiert.

Grundlegende Syntax-Regeln

Wichtiges zur Syntax:

  • In Python wird jede Anweisung in einer separaten Zeile notiert. Einrückungen haben in Python eine syntaktische Bedeutung. Du wirst das in Bälde sehen. Im Moment beginnen alle Anweisungen, die wir schreiben, direkt am Zeilenanfang.
  • Mehrere Anweisungen werden in der Reihenfolge ihrer Notation ausgeführt.
  • Groß- und Kleinschreibung ist bei der Schreibweise von Bezeichnern korrekt zu beachten.

Tippe jetzt den Programmcode ab und speichere ihn, so Du das nicht bereits getan hast. Ich empfehle Dir, Dir ein eigenständiges Verzeichnis auf Deiner Festplatte anzulegen, in welchem Du die hier besprochenen Programmcodes zuzüglich eventueller Notizen und anderer Informationen ablegst.

Ausführen eines Python-Programms

$ python hallowelt.py
Hallo, Welt!
$ _

Verwendest Du macOS oder Gnu/Linux als Betriebssystem zur Python-Programmierung, rufst Du den Interpreter mit python3 statt python auf. Alternativen zur Programmausführung erfährst Du im eingangs verlinkten Beitrag.

Der Eingabeprompt wird bei Dir vermutlich anders aussehen. Ich werde hier durchgehend den einfachen Prompt, bestehend aus einem einfachen Dollarzeichen, verwenden.

Eingabe, Verarbeitung, Ausgabe

Bitte akzeptiere YouTube-Cookies, um dieses Video abzuspielen. Wenn Du das akzeptierst, greifst Du auf Inhalte von YouTube zu, einem Dienst, der von einer externen dritten Partei bereitgestellt wird.

YouTube-Datenschutzrichtlinie

Wenn Du diesen Hinweis akzeptierst, wird Deine Wahl gespeichert und die Seite wird aktualisiert.

Sinnvolle Programme arbeiten mit Daten. Diese werden eingegeben und verarbeitet. Das Ergebnis der Bemühungen wird ausgegeben. Das Prinzip von Eingabe, Verarbeitung und Ausgabe ist kennzeichnend für alle sinnvollen Programme. Im Deutschen gibt es sogar einen Namen dafür: EVA-Prinzip.

Kommandozeilenargumente für die Eingabe

Für die Ausgabe hast Du bereits die Funktion print() kennengelernt. Dateneingaben können auf vielerlei Arten und Weisen erfolgen. Die erste Möglichkeit, die wir hier betrachten wollen, ist die, Kommandozeilenargumente zu verwenden. Kommandozeilenargumente haben den Vorteil, ein Programm auch dann mit Eingabedaten versorgen zu können, wenn es beispielsweise unbeaufsichtigt des Nachts laufen soll. Eine interaktive Eingabe hält ein Programm an. Es wartet dann solange, bis der Anwender seine Eingabe getätigt hat. Bei der Dateneingabe via Kommandozeilenargumente ist das nicht der Fall.

Du kennst Kommandozeilenargumente bereits. Beim Kommando python hallowelt.py ist hallowelt.py ein Kommandozeilenargument, welches wir dem Python-Interpreter übergeben. Dieser interpretiert dieses Argument als die auszuführende Skript-Datei. Wir sind nicht auf ein einziges Kommandozeilenargument beschränkt.

Verarbeitung

Um in einem Python-Programm auf Kommandozeilenargumente zugreifen zu können, brauchen wir ein Modul. Module erweitern die Programmiersprache Python um zusätzliche Features. Um diese nutzen zu können, müssen wir das entsprechende Modul importieren. Hierbei gibt es verschiedene Spielarten. Vorerst beschränken wir uns darauf, das gewünschte Modul in unserem Programm bekannt zu machen. Ich das Geschehen, können wir auf dessen Features zugreifen.

Wir benötigen das Modul sys, wenn wir Kommandozeilenargumente verarbeiten wollen. In diesem Modul gibt es eine Variable namens argv. Der Zugriff darauf erfolgt mit dem sogenannten Punkt-Operator.

Merke: Wenn bei Python irgendetwas in etwas anderem enthalten ist, benutzen wir den Punkt-Operator, um darauf zuzugreifen.

Hier ist das sys.argv. argv ist in sys definiert.

Du wirst die Funktionsweise der Kommandozeile und ihrer Abbildung in Python in Bälde noch detaillierter kennenlernen. Im Augenblich reicht es, wenn Du das Folgende weißt:

  • Die Kommandozeilenargumente sind von links nach rechts durchnummeriert.
  • Das erste Kommandozeilenargument hat die Nummer 1.

Das erste Kommandozeilenargument wird mit sys.argv[1] angesprochen, das zweite mit sys.argv[2] und so weiter.

Sprichst Du ein nicht existierendes Kommandozeilenargument an, ist das ein Fehler! – Die Programmausführung bricht dann mit einer Fehlermeldung ab.

Dies vorausgeschickt, machen wir uns an unser zweites Beispielprogramm. Es soll begruessung.py heißen. Das Programm soll ein Kommandozeilenargument verarbeiten. Das soll der Name einer zu begrüßenden Person sein. Das Programm liest den übergebenen Namen und verkettet ihn mit einer Begrüßung, die auf der Standardausgabe ausgegeben wird.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys                   # Zugriff auf Kommandozeile

print("Hallo ", end='')      # erster Teil der Begrüßung
print(sys.argv[1], end='')   # Name aus Kommandozeile
print("! - Wie geht es Dir?")  # Rest der Begrüßung
 

Zu Beginn haben wir wieder unsere „magischen Zeilen“ – ich werde sie fortan nicht mehr extra erwähnen.

Mit der import-Anweisung machen wir das Modul sys im Namensraum unseres Programms bekannt.

Die Ausgabe ist auf drei separate, direkt aufeinander folgende print()-Anweisungen aufgeteilt. Der Parameter end='' unterdrückt den Zeilenumbruch, den print() per Voreinstellung jeder Ausgabe hinzufügt. '' steht für eine leere Zeichenkette. Du darfst statt '' auch "" schreiben, wenn Dir das lieber ist.

Führen wir das Programm aus:

$ python begruessung.py Karsten
Hallo Karsten! - Wie geht es Dir?
$ python begruessung.py Sabine
Hallo Sabine! - Wie geht es Dir?
$ _

Die Verarbeitung ist im Beispielprogramm einfach gehalten. Es wird eine Ausgabezeichenkette konstruiert, in die das Kommandozeilenargument integriert ist. So einfach das Programm auch ist, es erfüllt die Kriterien des EVA-Prinzips.

Zwischenfazit

Du siehst, die ersten Schritte in der Python-Programmierung waren gar nicht schwierig. Die nächsten Programme, die Du schreiben wirst, werden alle die Grundstruktur haben, die wir hier besprochen haben. Bald wirst Du jedoch auch komplexere Programme schreiben können.

FAQs

  • Warum Python?

    Python ist extrem populär, plattformunabhängig, kostenlos verfügbar (auch für kommerzielle Zwecke), unterstützt alle modernen Programmierparadigmen, ist vielfältig einsetzbar und kann, aufgrund seiner klaren Sprachregeln, leicht erlernt werden. Außerdem gibt es zu Python eine nahezu unerschöpfliche Vielzahl von Modulen und Bibliotheken, die Dich bei Deiner Python-Programmierung unterstützen.

  • Welche Python-Version sollte ich nutzen?

    Ich empfehle Python 3. Das ist die Version, die dem Tutorial zugrunde liegt. Wenn möglich solltest Du die aktuellste Version installieren, die für Dein System angeboten wird. Wähle aber eine stabile Version.

  • Muss ich die Beispielprogramme abschreiben und am eigenen Computer ausprobieren?

    Müssen tust Du gar nichts. Ich empfehle die jedoch, die Programme eigenhändig am eigenen Rechner auszuprobieren. Am besten ist es, wenn Du sie nicht einfach abtippst, sondern versuchst, Sie aus Deiner Erinnerung zu schreiben. Natürlich wirst Du dabei Fehler machen. Aus Fehlern lernt man aber bekanntlich am meisten. Versuche die Fehlermeldungen zu verstehen und beseitige die Fehler. Bereits nach kurzer Zeit wirst Du Deine Fehler sehr schnell erkennen können, wenn Dir ein solcher unterläuft.
    Nutze auch die Übungsaufgaben. Programmieren lernen bedeutet: Praxis, Praxis, Praxis, …

  • Wie lauten die Python-Regeln in Bezug auf Whitespaces, wie Tabulatoren, Leerzeichen und Zeilenumbrüche?

    In der Regel sind Python Whitespace-Zeichen egal. Davon ausgenommen sind Zeichenketten und Einrückungen. Einrückungen sind Whitespaces am Anfang einer Zeile. Sie spielen eine wichtige Rolle bezüglich Kontrollstrukturen, Funktionen etc. Einrückungen haben eine syntaktische Bedeutung und dürfen daher nu in entsprechenden Situationen vorgenommen werden. Eine Einrückung ist in Python 4 Leerzeichen breit – das ist Konvention. Du solltest Deinen Editor so einstellen, dass er einen Tabulator durch 4 Leerzeichen ersetzt. Die Einrückungen müssen in Python konsistent sein.
    Leerzeichen in Zeichenketten werden so ausgegeben, wie sie in der Zeichenkette stehen. Kein Leerzeichen wird ignoriert.

  • Kann ich mehr als eine Anweisung in einer Zeile notieren?

    Ja, das kannst Du. Trenne die Anweisungen dann mit einem Semikolon voneinander. Die Python-Konventionen gebieten jedoch, auf solche Art von Notation zu verzichten. Sie gelten als schlechter Stil.

  • Was passiert, wenn ich eine Anweisung falsch schreibe oder eine Klammer vergesse?

    Eine vergessene Klammer ruft einen Syntax-Fehler hervor. Das ist ein grammatikalischer Fehler. Ein falsch geschriebener Bezeichner kann, je nach Kontext, unterschiedliche Fehlermeldungen bewirken. Python achtet auch ganz penibel auf Groß-/Kleinschreibung. print ist nicht gleich Print oder gar PRINT. Diese Funktionen gibt es nicht, wenn Du sie nicht selbst implementiert hast.

  • Warum bekomme ich eine Fehlermeldung, wenn ich begruessung.py ohne ein Kommandozeilenargument aufrufe?

    Das Programm versucht auf das erste Kommandozeilenargument zuzugreifen. Ist es nicht vorhanden, greift es quasi ins Leere.

Übungsaufgaben 1: Erste Programme

  1. Schreibe ein Programm viele_hallos.py, welches 10 mal die Zeichenkette „Hallo“ ausgibt, jedes „Hallo“ in einer eigenen Zeile.
  2. Schreibe ein Programm freunde.py, welches drei Namen Deiner Freunde als Kommandozeilenargumente entgegennimmt. Innerhalb einer Begrüßung sollen die Namen in umgekehrter Reihenfolge ausgegeben werden.

    Beispiel:

  3. $ python freunde.py Wolle Turbo Frank
    Hi Frank, Turbo und Wolle!
    Da seid Ihr ja endlich.
    $ _