Hi!
Nachdem ich nun schon 3 Tage erfolglos an meiner Hausübung arbeite, probier ich mal hier nachzufragen; vielleicht hat ja jemand eine Idee.
Und zwar sollen wir eine Funktion schreiben, die von einer beliebigen Formel die Anzahl aller Variablen auflistet. (Also z.B. bei der einfachen Formel 2x + y^x = 1/x soll dann raus kommen "x: 3, y: 1"). Das Ganze soll dann natürlich auch mit komplexen Formeln und mehreren Gleichungssystem funktionieren.
Wir dürfen allerdings NUR .operator(), .operands() und op(*arg) verwenden; alles, was in irgendeiner Form mit substitute zu tun hat, ist bei dieser Übung NICHT erlaubt.
Hat vielleicht irgendjemand eine Idee?
mfg
Anzahl der Variablen in einer Formel bestimmen
Bitte poste mindestens den Inhalt von `.operator()`, `.operands()` und `op(*arg)`. Wir sind zwar relativ gut im Raten und ich kann mir auch in etwa denken, was die 3 Kollegen machen, aber eine sichere Grundlage wäre schon ganz gut.
Und nicht böse gemeint, aber mach dir bitte beim nächsten Mal klar, dass wir hier die genaue Aufgabenstellung nicht kennen. So wie du deine Frage formulierst hast, würdest du sicher auch mit vielen Fragezeichen davor stehen, wenn du dich sozusagen mal in dein Gegenüber versetzen möchtest. Das sind einfach viel zu wenig Informationen, die du mit deiner Eingangsfrage geliefert hast...
Und nicht böse gemeint, aber mach dir bitte beim nächsten Mal klar, dass wir hier die genaue Aufgabenstellung nicht kennen. So wie du deine Frage formulierst hast, würdest du sicher auch mit vielen Fragezeichen davor stehen, wenn du dich sozusagen mal in dein Gegenüber versetzen möchtest. Das sind einfach viel zu wenig Informationen, die du mit deiner Eingangsfrage geliefert hast...
Ich rate jetzt trotzdem mal: Deine Formel wird als Zeichenkette dargestellt. In dieser Zeichenkette befinden sich alle möglichen Zeichen, darunter auch Buchstaben. Dies sind die Variablenbezeichner (z.B. "x"). Nun gehst Du die Zeichenkette Zeichen für Zeichen durch und merkst Dir, welche Buchstaben Du findest und wieviel davon. Ein Dictionary eignet sich für die Ergebnisablage ganz gut. Und falls dies richtig geraten ist und Du die Lösung hast, dann schaue mal in der Python-Dokumentation nach 'defaultdict'.
Ergänzend zu kbr: Nach `Counter` könntest Du auch schauen. Wenn die Namen in der Zeichenkette mehr als einen Buchstaben haben dürfen, dann ist das `re`-Modul nützlich.
Ich vermute ja eher, dass es Klassen gibt, welche die Formel repräsentieren und das diese die genannten Methoden besitzten. In dem Fall müsstest Du uns tatsächlich mal verraten wie die aussehen beziehungsweise aus welcher Bibliothek die kommen und wo man sich die anschauen kann. `sympy` scheint es zum Beispiel nicht zu sein.
Ich vermute ja eher, dass es Klassen gibt, welche die Formel repräsentieren und das diese die genannten Methoden besitzten. In dem Fall müsstest Du uns tatsächlich mal verraten wie die aussehen beziehungsweise aus welcher Bibliothek die kommen und wo man sich die anschauen kann. `sympy` scheint es zum Beispiel nicht zu sein.