Zum Inhalt

02 - Skripting

In diesem Abschnitt wollen wir mal versuchen unser bisheriges Wissen in kleine hilfreichen Skript zu bündeln.

Wortlänge

Was bnötigen wir dazu?

  • Eingabe des Wortes
  • Berechnung der Länge des Wortes
  • Ausgabe der Länge des Wortes

Eingabe

Für die Eingabe können wir die Funktion input verwenden. Diese Funktion gibt den eingegebenen Text als String zurück.

wortlaenge.py
eingabe = input("Bitte geben Sie ein Wort ein: ")

Berechnung

Zuerst wollen wir versuchen die Länge des Wortes mit den bisherigen Mitteln zu berechnen. Anschließend werden wir uns eine Funktion ansehen, die uns die Arbeit abnimmt.

Wir haben im vorherigen Abschnitt die for-Schleife kennengelernt. Mit dieser Schleife können wir über alle Elemente einer Liste iterieren. Wir können die Schleife auch verwenden um über alle Zeichen einer Zeichenkette zu iterieren.

wortlaenge.py
1
2
3
4
eingabe = input("Bitte geben Sie ein Wort ein: ")

for zeichen in eingabe:
    print(zeichen)
python wortlaenge.pyHalloH
a
l
l
o

Wir haben schon gelernt mit Variablen zu rechnen, dies können wir hier anwenden. Wir legen eine Variable laenge an und addieren für jedes Zeichen in der Eingabe 1 zur Länge hinzu.

wortlaenge.py
1
2
3
4
5
6
eingabe = input("Bitte geben Sie ein Wort ein: ")

laenge = 0

for zeichen in eingabe:
    laenge = laenge + 1

Nun fehlt uns nur noch die Ausgabe der Länge.

Ausgabe

Die Ausgabe können wir mit der Funktion print realisieren. Diese Funktion gibt den übergebenen Text auf der Konsole aus.

wortlaenge.py
1
2
3
4
5
6
7
8
eingabe = input("Bitte geben Sie ein Wort ein: ")

laenge = 0

for zeichen in eingabe:
    laenge = laenge + 1

print("Die Länge des Wortes beträgt", laenge, "Zeichen.")

Zum testen können wir das Skript ausführen.

python wortlaenge.pyHalloDie Länge des Wortes beträgt 5 Zeichen.

Wie geht es einfacher?

Wir haben uns eben die Arbeit gemacht die Länge des Wortes selbst zu berechnen, das übt und ist auch gut um die Sprache zu lernen. Aber Python bietet uns auch eine Funktion an, die uns die Arbeit abnimmt. Diese Funktion heißt len und gibt die Länge eines Objektes zurück.

wortlaenge.py
1
2
3
4
5
eingabe = input("Bitte geben Sie ein Wort ein: ")

laenge = len(eingabe)

print("Die Länge des Wortes beträgt", laenge, "Zeichen.")

Temperaturumrechnung

Wir wollen nun ein Skript schreiben, welches eine Temperatur in Grad Celsius in Grad Fahrenheit umrechnet.

Eingabe

Wir benötigen wieder eine Eingabe, diesmal eine Zahl. Wir können die Eingabe mit der Funktion input realisieren. Diese Funktion gibt den eingegebenen Text als String zurück. Wir müssen den String noch in eine Zahl umwandeln. Dies können wir mit der Funktion int realisieren.

temperatur.py
1
2
3
eingabe = input("Bitte geben Sie eine Temperatur in Grad Celsius ein: ")

celsius = int(eingabe)

Berechnung

Wir müssen nun die eingegebene Temperatur in Grad Fahrenheit umrechnen. Die Formel hierfür lautet: fahrenheit = celsius * 1.8 + 32. Wir können die Berechnung in einer Variable speichern.

temperatur.py
1
2
3
4
5
eingabe = input("Bitte geben Sie eine Temperatur in Grad Celsius ein: ")

celsius = int(eingabe)

fahrenheit = celsius * 1.8 + 32

Ausgabe

Zum Schluss müssen wir die berechnete Temperatur noch ausgeben. Dies können wir mit der schon bekannten Funktion print erledigen.

temperatur.py
1
2
3
4
5
6
7
eingabe = input("Bitte geben Sie eine Temperatur in Grad Celsius ein: ")

celsius = int(eingabe)

fahrenheit = celsius * 1.8 + 32

print(celsius, "Grad Celsius entsprechen", fahrenheit, "Grad Fahrenheit.")

Testen

Nun wollen wir das Skript testen. Wir können das Skript mit der Python-Shell ausführen.

python temperatur.py2020 Grad Celsius entsprechen 68.0 Grad Fahrenheit.

Wir können auch mal versuchen eine Kommazahl einzugeben.

python temperatur.py20.5Traceback (most recent call last):
File "temperatur.py", line 3, in <module>
celsius = int(eingabe)
ValueError: invalid literal for int() with base 10: '20.5'

Wir bekommen eine Fehlermeldung, da wir versuchen einen String, der eine Kommazahl enthält, in eine Ganzzahl umzuwandeln. Wir können die Eingabe in eine Kommazahl umwandeln. Dies können wir mit der Funktion float realisieren. Wir merken uns diesen Fehler und machen noch einen weiteren Test.

Nun versuchen wir Buchstaben einzugeben.

python temperatur.pyabcTraceback (most recent call last):
File "temperatur.py", line 3, in <module>
celsius = int(eingabe)
ValueError: invalid literal for int() with base 10: 'abc'

Wir bekommen wieder eine Fehlermeldung, da wir versuchen einen String, der keine Zahl enthält, in eine Ganzzahl umzuwandeln. Wir können die Eingabe auf eine Zahl prüfen. Dies können wir mit der Funktion isdigit realisieren. Diese Funktion gibt True zurück, wenn der String nur aus Zahlen besteht, ansonsten False.

Fehlerbehebung

Um die eben gefundenen Fehler zu beheben, müssen wir die Eingabe des Benutzers auf eine Zahl prüfen und die Umwandlung in eine Zahl nur durchführen, wenn es sich um eine Zahl handelt. Auch müssen wir die Umwandlung in eine Kommazahl durchführen und nicht in eine Ganzzahl.

temperatur.py
eingabe = input("Bitte geben Sie eine Temperatur in Grad Celsius ein: ")

if eingabe.isdigit():
    celsius = float(eingabe)

    fahrenheit = celsius * 1.8 + 32

    print(celsius, "Grad Celsius entsprechen", fahrenheit, "Grad Fahrenheit.")
else:
    print("Sie haben keine Zahl eingegeben.")

Nun können wir das Skript nochmal testen.

python temperatur.py20.520.5 Grad Celsius entsprechen 68.9 Grad Fahrenheit.python temperatur.pyabcSie haben keine Zahl eingegeben.