ich schreibe gerade ein kleines Programm, mit dem ich Terme darstellen kann. Mit Termen meine ich in der Mathematik sowas wie: 4t + 5t - 9a usw.
Dafür habe ich zwei Klassen geschrieben:
Code: Alles auswählen
class Term(object):
def __init__(self, zahl, variable):
self.Zahl = zahl
self.Variable = variable
Code: Alles auswählen
import term
import math
class Formel(object):
def __init__(self, terme):
self.Terme = terme
def zusammenfassen(self):
if len(self.Terme) <= 1:
return self.Terme
terme = []
while len(self.Terme) != 0:
t = self.Terme[0]
del self.Terme[0]
for i in range(len(self.Terme)):
try:
if t.Variable == self.Terme[i].Variable:
t.Zahl = t.Zahl + self.Terme[i].Zahl
del self.Terme[i]
except Exception as ex:
pass
terme.append(t)
self.Terme = terme
return terme
#erstellt einen string aus der formel
def get_formel(self):
res = ""
for i in range(len(self.Terme)):
if self.Terme[i].Zahl > 0:
res = res + " + " + str(self.Terme[i].Zahl) + self.Terme[i].Variable
elif self.Terme[i].Zahl == 0:
pass
else:
res = res + " - " + str(abs(self.Terme[i].Zahl)) + self.Terme[i].Variable
return res
#schreibt die formel auf die konsole
def f_print(self):
print(self.get_formel())
Jedoch gibt es manchmal Probleme mit dieser Funktion.
Beispielsweise bei einer Formel wie dieser:
kommt folgendes heraus:- 3h - 13f + 7f + 7i + 4f + 14f + 12h + 10i
Was ist falsch an meiner Funktion ?+ 9h - 2f + 17i + 14f