python ValueError: could not convert string to float:?
hey, will die binomialverteilung als programm schreiben, aber p soll als bruch möglich sein. Ich kann aber kein String zu Float machen. Wie krieg ich das jetzt hin
Was meinst du mit "String zu float machen"?
Meinst du den ASCII-Wert?
wahrscheinlich
2 Antworten
float() kann eben nur String-Literale parsen. Für Brüche gibt es die Klasse Fraction. Damit kann man prima rechnen:
from fractions import Fraction
# ...
p = Fraction(p1)
Bei Bedarf (z. B. für die Ausgabe als Dezimalzahl) lässt sich ein Bruch auch in einen float() konvertieren.
Beim Umwandeln eines Strings in eine Zahl werden Ausdrücke nicht automatisch ausgewertet. Daher wird "1/6" nicht als Zahl erkannt.
Du müsstest den String analysieren, Zähler und Nenner (z.B. in zwei getrennte Variablen) extrahieren und diese dann durcheinander dividieren.
Oder einen fertigen "Parser" benutzen, es gibt davon einige im Netz …