Hinzufügen von Multiplikationszeichen (*) zwischen Koeffizienten

Ich habe ein Programm, in dem ein Benutzer eine Funktion eingibt, z. B.sin(x)+1. Ich benutzeast, um zu ermitteln, ob die Zeichenfolge 'sicher' ist, indem Sie Komponenten wie in @ gezeigt auf die Positivliste setzediese Antwort. Jetzt möchte ich die Zeichenfolge analysieren, um die Multiplikation hinzuzufügen *) Vorzeichen zwischen Koeffizienten ohne sie.

Beispielsweise

3x ->3*x4(x+5) ->4*(x+5)sin(3x)(4) ->sin(3x)*(4) (sin ist bereits in Globals, sonst wäre diess*i*n*(3x)*(4)

ibt es dafür effiziente Algorithmen? Ich würde eine pythonische Lösung bevorzugen (d. H. Keine komplexen regulären Ausdrücke, nicht weil sie pythonisch sind, sondern nur weil ich sie nicht so gut verstehe und eine Lösung will, die ich verstehen kann. Einfache reguläre Ausdrücke sind in Ordnung.)

Ich bin sehr offen für die Verwendung vonsympy (das sieht für so etwas wirklich einfach aus) unter einer Bedingung: Sicherheit. Offenbarsympy Verwendeteval unter der Haube. Ich habe mit meiner derzeitigen (Teil-) Lösung ziemlich gute Sicherheit. Wenn jemand eine Möglichkeit hat, @ zu machsympy sicherer mit nicht vertrauenswürdigen Eingaben, ich würde dies auch begrüßen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage