3.2.2 Ganzzahl negativ, positiv oder Null

Das Programm »ganzzahl3.py«

Das Programm soll das Folgende leisten:

  • (E) Eingabe einer Ganzzahl.
  • (V) Verarbeitung, indem geprüft wird, ob die Ganzzahl positiv, negativ oder Null ist.
    • Hinweis: Null ist weder eine negativ noch positiv Ganzzahl.
  • (A) Ausgabe des Prüfungergebnisses in einer Zeichenkette.

Zum Prüfen – ob eine vom Benutzer eingegebene Ganzzahl negativ, positiv oder Null ist – ist der in der Abbildung1 dargestellte Algorithmus gegeben.

Bild 47
Abbildung 1: Algorithmus mit mehrfacher Auswahl

Der Algorithmus wiederum liegt der Callback-Funktion »pruefen« zugrunde.

  • Die if-elif-else-Anweisung (mehrfache Auswahl) mit drei Bedingungszweigen bildet den Kern der Callback-Funktion »pruefen«.
Quelltext der Callback-Funktion »pruefen«
# Callback-Funktion
def pruefen():
    try:
        zahl=int(entry.get())
        if zahl<0:
            label2.config(text=f"{zahl} ist negativ.")
        elif zahl > 0:
            label2.config(text=f"{zahl} ist positiv.")
        else:
            label2.config(text=f"Zahl ist {zahl}.")
    except ValueError:
        label2.config(text="Falsche Eingabe!")
    entry.delete(0, tk.END)  

Erklärungen zum Quelltext
2. bis 13. Zeile Die Callback-Funktion »pruefen« wird deklariert.
3. bis 12. Zeile Durch »try« und »except« erfolgt eine Ausnahmebehandlung der Eingabe.
5. bis 10. Zeile Die if-elif-else-Anweisung ist eine mehrfache Auswahl mit drei Bedingungszweigen:
  • dem der negativen Ganzzahl
  • dem der posiven Ganzzahl
  • dem der Ganzzahl 0
6., 8. und 10. Zeile Die Ausgaben erfolgen in f-Strings.
13. Zeile Der Inhalt des Eingebefensters wird gelöscht.
Übung

Aufgabe A18

Implementiere ein Programm »ganzzahl3.py« am Computer.

  • Das Programm besteht aus einer grafischen Benutzeroberfläche – dem Hauptfenster mit Widgets.
  • Und das Programm enthält die Callback-Funktion »pruefen«.

Führe das Programm u. a. mit folgenden Eingaben aus und teste, ob es fehlerfrei läuft und den gestellten Anforderungen entspricht:

  • -25
  • 103
  • 0