In der Vorlesung zu Tag 2 wurde mithilfe von input ein minimaler Taschenrechner implementiert, welcher zwei vom Nutzer eingegebenen Zahlen mit einer vorgegebenen Operation verknüpft, beispielsweise multipliziert.
Es wäre natürlich schön, wenn auch der operator vom Nutzer eingegeben werden könnte. Theoretisch könnte dieses mit einer langen Kette von If-Abfragen implementiert werden, wo in jedem Zweig die Operation mit den zwei eingaben ausgeführt wird, beispielsweise so:
zahl1 = input()
zahl2 = input()
operator = input()
if operator == '*':
  print(zahl1 * zahl2)
elif operator == '+':
  print(zahl1 + zahl2)
elif ...
Um diese Code Duplikation zu vermeiden, kann das operator modul genutzt werden, welche die Operatoren als einzelne Funktionen zur verfügung stellt.
Implementieren Sie einen Taschenrechner, welcher zwei Zahlen sowie einen Operator vom Nutzer entgegennimmt, und anschließend die gegebene Operation auf den beiden Zahlen ausführt.
Vermeiden Sie hierbei, außer zur Prüfung ob die Eingaben valide sind, konditionale Prüfungen wie mit if, match, oder auch gemogelt mit while oder for, insbesondere zur Auswahl der Operation.
Implementieren Sie beispielsweise die folgenden arithmetischen Operatoren:
sowie die folgenden Vergleichsoperatoren:
In der Dokumentation des operator moduls finden Sie weitere Operatoren, welche Sie ebenfalls implementieren können.
Man kann in einem Dictionary beispielsweise dem string “*” eine bestimmte funktion zuordnen (ja, funktionen sind valide Values in Dictionaries).