[Python]Wie kann ich eine Rechnung von einem string zu integer wandeln?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Bei Python gibt es die Funktion eval( ). Diese schaut auf den String und interpretiert es, als wäre es eine Rechnung. Das wäre glaube ich die beste Option für dein Problem.

import random

lst = ["Was ergibt: 17*3+5*2", "Was ist das Ergebnis von: 12*11+15 ", "Sag mir das Ergebnis von: ((19-1+2)*3+20)*4 "]

x = random.randint(0, len(lst)-1)
v = lst[x].split(":")[1].strip()

print(f"Ergebnis: {v} = {eval(v)}")

Ich hoffe ich konnte dir weiterhelfen und wenn du noch Fragen hast dann kannst du mich natürlich fragen.

LG

Woher ich das weiß:eigene Erfahrung
python1noob 
Fragesteller
 06.10.2022, 18:29

WOW! Dankeschön, genau das habe ich gebraucht!

1

Ich kenne mich zwar mit Phyton nicht aus. Das aber ganze Terme die in Strings enthalten sind geparst und ausgerechnet werden können fände ich ziemlich erstaunlich. In den Programmiersprachen die ich kenne ist das parsen zu Zahlentypen möglich, so wie von FaTech aufgezählt.

Brainchild  06.10.2022, 17:29

Du könntest die einen Parser programmieren, der das kann. Grammatiken dafür gibt es viele im Web.

0
FaTech  06.10.2022, 17:30

Sowas geht, Beispiel C# und Compute, aber dafür muss man eben die passende Funktion finden, wie ich halt sagte :)

0
python1noob 
Fragesteller
 06.10.2022, 17:30

mhm, schade dass das nicht geht. Danke dir

0

Kleiner Tipp vorweg du kannst um ein zufälliges item einer Liste zu bekommen statt mit der Länge und so weiter zu arbeiten auch einfach

object = random.choice(list_objekt) machen …