Skip to content

06 Benutzereingaben

Jürgen Hansmann edited this page Mar 11, 2024 · 4 revisions

Benutzereingaben

Ihr habt eure ersten eigenständig laufenden Programme geschrieben. Es ist aber – mit Verlaub – noch sehr langweilig, da es im Ablauf sehr starr ist und der Benutzer keine Möglichkeit hat, mit der Software zu interagieren.

Ein Skript beginnt meistens mit der Variablendeklaration und -initialisierung. Häufig möchten die Variablenwerte nicht fix als Konstanten ins Skript integriert, sondern dynamisch vom Benutzer eingegeben werden. Diese so genannten Parameter können auf zwei Arten dem Skript übergeben werden:

  1. Der Benutzer kennt die benötigten Parameter und gibt die Werte an, bevor er das Skript startet
  2. Das Skript fordert den Benutzer zur Laufzeit auf, eine Eingabe zu tätigen
import sys
user_param = sys.argv[1]
print(f"Deine Eingabe war: {user_param}")
user_param = input("Bitte eine Zahl eingeben: ")
print(f"Deine Eingabe war: {user_param}")
  • Mit dem Befehl import können wir die Standardfunktionalität von Python beliebig erweitern. Das Modul sys beinhaltet z.B. viele Funktionen des Betriebssystems, um mit diesem kommunizieren zu können.
  • Wird das Skript in der Windows Kommandozeile gestartet, werden alle Benutzereingaben in der Liste sys.argv gespeichert. Der erste Eintrag (an der nullten Indexposition) ist immer der Dateiname des Skripts selbst. Ab dem zweiten Eintrag (ab Index 1) folgen die Parameter. Wenn es mehrere Parameter gibt, werden diese bei der Eingabe auf der Kommandozeile mit einem Leerschlag getrennt. Enthält der Parameter selber Leerschläge, gehören Anführungszeichen drum.
  • f-strings, wie in print(f"Deine Eingabe war: {}") sind eine Möglichkeit, in Strings einen Platzhalter {} durch deinen Variablenwert zu ersetzen.
  • Der Userinput wird von Python immer als String interpretiert, auch wenn eine Zahl eingegeben wird. Der Input muss also gegebenenfalls zuerst in den richtigen Datentyp gecastet werden.

Übung: Benutzereingaben
kreis.py

Schreibe ein Skript, das folgendes kann:

  • Der Benutzer soll einen Radius als Parameter eingeben
  • Das Skript berechnet Durchmesser, Umfang und Fläche des Kreises

Tipps:

  • entscheide selber, ob du input() oder sys.argv[] ensetzen möchtest.
  • importiere das Modul math und nutze die Konstante pi für die Kreiszahl.
Clone this wiki locally