Ich bräuchte ein wenig Verständnishilfe bei einer Aufgabe von mir in der Uni für Python.
Ich erwarte hier keine fertige Lösung, dass ist mir durchaus bewusst, dass das Forum dafür nicht da ist, ich hätte gerne einfach ein wenig Hilfe dabei, die Klausur muss ich ja auch alleine schreiben . Ich habe immernoch große Probleme bei Python direkt bei einem Problem auf den richtigen Lösungsweg zu kommen, und vllt kann der ein oder andere mir ja helfen, dass besser zu verstehen
Also es geht bei der Aufgabe um Rekursion. Die Aufgabenstellung sieht wie folgt aus:
Im String 𝑐 sei eine einfache Rechnung abgespeichert, die nur Addition (+), Multiplikation (*) und die Zahlen (1,2,3,4,5,6,7,8,9) enthält. Sie dürfen davon ausgehen, dass der String keine Leerzeichen enthält.
Beispiel:
c = "3+4*5+6+1*3"
Schreiben Sie eine Funktion calc(string), welche rekursiv das Ergebnis dieser Rechnung bestimmt und als Integer zurückgibt. Achten Sie dabei auf Punkt-vor-Strich-Rechnung!
Als vorgegebenen Code haben wir das:
Code: Alles auswählen
c = "3+4*5+6+1*3"
print(c)
print()
# Beispiele für split():
sub1, sub2 = c.split("+", 1)
print("Ergebnis mit '+':")
print("sub1=" + sub1)
print("sub2=" + sub2)
print()
sub1, sub2 = c.split("*", 1)
print("Ergebnis mit '*':")
print("sub1=" + sub1)
print("sub2=" + sub2)
print()
# Beispielende
Mein Rekursionsende ist, wie ich verstanden habe, erreicht, wenn die Länge des Strings 1 beträgt, macht ja auch Sinn, dann ist ja alles fertig gerechnet.
Mir ist auch bewusst, dass ich zu irgendeinem Zeitpunkt die strings in integer umwandeln muss. Und das Beispiel im code mit den split würde für mich auch sinn machen. Da hab ich mir gedacht, ich würde solange die strings spliten, bis jeweils alle nurnoch aus einem string bestehen, und alle dann zusammen addieren.
Ich bin auf jedenfall schwer verwirrt und bräuchte dringend eine hilfestellung, damit ich versteh, was zu zun ist.
Wäre wirklich über jede Hilfe dankbar!
Liebe Grüße
Chrissi