def term_auswerten(zeile): ''' Die Funktion wertet den Term aus, Problem hierbei ist, a.) dass die Punkt-vor-Strich-Regel ausgeklammert ist, d. h. b.) der Term von links nach rechts auszuwerten ist eval() scheidet aus erst einmal aus; ein komplexerer Zugriff ist erforderlich ''' zeile = zeile.replace(" =","") # = brauche ich nicht zeile = zeile.split(" ") term = "" for a in zeile: if a in ["*","+","-"]: term = str(eval(term)) term += a else: term += a print(eval(term)) data = """28 - 7 * 3 = 13 * 4 + 8 * 2 + 1 = 4 + 3 * 52 = 0 =""" zeilen = data.split("\n") for zeile in zeilen: if zeile == "0 =": pass else: term_auswerten(zeile)Die Aufgabe ließ sich schnell lösen, wenn ich auch für die Möglichkeit zur interaktiven Entwicklung dankbar bin. Ich mache noch zu viele Fehler...
Freitag, 8. Februar 2013
Dirt Simple Calculator
Für HP Codewars war 2009 als Problem 4 ein schmutziger, einfacher Rechner zu programmieren. Simple, weil die Division nicht unterstützt wird und schmutzig, weil die Punkt-vor-Strich-Rechnung zu ignorieren war:
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen