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