None
Programmierung

Python 3 - Nur eine Schlange? - Teil 2

by Viktor Garske on Sept. 9, 2016, midnight

Im ersten Teil dieser Serie haben wir uns mit der Einführung in Python 3 beschäftigt. Ich habe erklärt, was Python selbst und der Unterschied zwischen Version 2 und 3 ist und wie man ein erstes Skript im Interpreter ausführt.

Dieses erste Skript sieht allerdings momentan noch gar nicht nach einem typischen "Programm" aus. Die Befehle müssen z.B. per Hand eingegeben werden. Aber keine Bange: natürlich ist es möglich, Anwendungen innerhalb von Dateien zu schreiben. Wir haben lediglich im ersten Teil Python im sog. "interaktiven Modus" aufgerufen. Dieser verhält sich ähnlich wie eine Kommandozeile. Sie begrüßt den Benutzer mit Informationen über die Python-Installation und gibt eine Eingabeaufforderung, eine sog. Prompt (>>>) aus. Hier werden nun die Befehle eingegeben. Beendet wird die Prompt übrigens entweder per Ctrl+D/Strg+D oder den Befehl exit().

Das Hallo Welt-Beispiel können wir auch in einer Datei ausführen. Hierzu legen wir eine solche an und nennen sie in meinem Beispiel "hallowelt.py". Pythonskripte enden normalerweise immer auf ".py". Der Inhalt ist genau der gleiche wie aus Teil 1:

print("Hallo Welt")

Um diese Datei nun auszuführen, ruft man unter Linux eine Shell auf, navigiert in das Verzeichnis der Datei und gibt Folgendes ein:

python3 hallowelt.py

Wenige Augenblicke später erscheint dort das Ergebnis. Unter Windows wird mit der Eingabeaufforderung ähnlich verfahren, hier tragt ihr dann als Kommando Folgendes ein:

python hallowelt.py

Sollte das nicht funktionieren, muss man den gesamten Pfad zur python.exe angeben, also bei Python 3.4

C:\Python34\python.exe hallowelt.py

Die kompletten Python-Dateien können theoretisch im interaktiven Modus abgeschrieben werden und führen üblicherweise zum gleichen Ergebnis. Der interaktive Modus eignet sich besonders zum Testen und Ausprobieren von Befehlen. In den nächsten Teilen mehr dazu.

Arbeit mit dem Benutzer

Oftmals haben Einsteiger einer Sprache besonders viel Spaß mit Interaktionen. Ein gutes Mittel zur Interaktion ist die Eingabe. Während die Ausgabe über print() erfolgt, können Eingaben über input() erfasst werden. Versuchen wir also, den Namen des Benutzers zu erfragen. Dazu erstellen wir die Datei werbistdu.py und tragen dort folgende Zeile ein:

input("Wie ist dein Name? ")

Spätestens hier bemerkt ihr, ob ihr die richtige Python-Version installiert habt. Dieser Befehl wurde in Python 3 umbenannt, unter Python 2 hieß er raw_input(). Bei der Namensgebung des Befehls ist meiner Meinung nach Python 3 logischer. Wenn also im Skript bei dieser Zeile ein Fehler auftreten, solltet ihr überprüfen, ob ihr auch Python 3 korrekt installiert habt und das Skript mit dem richtigen Interpreter ausführt.

 

Das Leerzeichen vor dem schließenden Anführungszeichen ist bewusst gesetzt, da der Nutzer seine Eingabe direkt hinter dem Text angibt. Wenn wir das Ganze ausführen, wird zwar unser Name abgefragt, nach einer Bestätigung mit der Enter-Taste beendet sich das Programm allerdings. Warum?

Variablen

Die Antwort ist einfach: weil die Eingabe natürlich nicht verarbeitet wird, denn hierzu müssen wir sie erst irgendwo zwischenspeichern oder den Eingabebefehl einer langen Befehlskette unterbringen. Die Methode mit der "Zwischenspeicherung" ist aber übersichtlicher und somit das Mittel der Wahl.

 

Üblicherweise erfolgt das Speichern von Daten innerhalb des Programms mit Variablen. Glücklicherweise ist Python dynamisch typisiert und achtet auf die Typprüfungen erst zur Laufzeit.

Variablen müssen demnach nicht initialisiert werden. Sie werden automatisch initialisiert, wenn sie das erste Mal zugewiesen werden. Bauen wir eine Variable in unser Programm ein und wollen den Namen wieder ausgeben, entsteht folgender Quelltext:

name = input("Wie heißt du? ")
print("Du heißt " + name)

Den Namen der Variable können wir bis auf ein paar Ausnahmen frei definieren, müssen aber im restlichen Quelltext immer richtig auf ihn verweisen. Das + im print()-Befehl ist ein sog. Verkettungsoperator, er verbindet den String mit Du heißt und dem Inhalt der Variable zu einem neuen String, den er dann ausgibt.

 

Hinweis: Strings mit + verketten ist zwar möglich und sieht zur Verdeutlichung auch gut aus, in der Praxis wird aber eine andere Methode gewählt. (Danke für den Hinweis, noisefloor!) In PEP 3101 wird hierzu die .format()-Methode erwähnt. Mit ihr sieht der Quelltext folgendermaßen aus:

name = input("Wie heißt du? ")
print("Du heißt {0}".format(name))

 

Wird das Programm gestartet und wir geben einen Namen, z.B. Viktor, ein, wird "Du heißt Viktor" ausgegeben.

Im nächsten Teil bauen wir uns mit bedingten Anweisungen einen kleinen Login.

Tags:
Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (0)

Comments are not enabled for this entry.