SWE Hilfe Jupyter Notebook - Versteht jemand, was ich falsch mache?
class Vektor:
def __init__(self, Liste):
for i in Liste:
if type(i)! = (int or float)
raise TypeError("VektorFehler: Im Vektor duerfen nur Zahlen stehen.")
self.__Liste = Liste
self.__Dim = len(Liste)
def __str__(self):
return str(self.__Liste)
def __add__(self, anderen):
Ergebnis = []
try:
for i in range(self.__Dim):
Ergebnis.append(self.__Liste[i]+anderen.__Liste[i])
except IndexError:
print("VektorFehler: Die Dimension der Vektoren sind nicht gleich.")
return False
except TypeError:
print("VektorFehler: Im Vektor duerfen nur Zahlen stehen.")
return False
else:
return Vektor(Ergebnis)
def __mul__(self, anderen):
Ergebnis = 0
for i in range(self.__Dim):
Ergebnis += self.__Liste[i] * anderen.__Liste[i]
return Ergebnis
if __name=="__main__"
Vektor1 = Vektor([1, 2, 3])
print ("Vektor1:", Vektor1)
Vektor2 = Vektor([2, 3, "Orange"])
print("Vekot2:", Vektor2)
print("Summe1:", Vektor1 + Vektor2)
print("Summe2:", Vektor2 + Vektor1)
Fehleranzeige:
File "<ipython-input-1-87427d9557df>", line 4
if type(i)! = (int or float)
^
SyntaxError: invalid syntax
Versteht jemand, was ich falsch mache?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Programm, programmieren
Wie es der Fehler schon sagt, ist die Syntax nicht richtig.
Für deinen Fall wäre dies eine korrekte Lösung:
if not isinstance(i, int) and not isinstance(i, float):
# ...
Mit isinstance kannst du prüfen, ob eine Variable eines bestimmten Typs ist. Mit not wird ein Ausdruck negiert und mit and können zwei Ausdrücke logisch verknüpft werden.
Noch zwei Syntaxfehler, die ich gerade sehe:
if __name == "__main__"
- Für die vordere Variable fehlen dir zwei Unterstriche. Die Systemvariable heißt __name__.
- Am Ende der Zeile fehlt ein Doppelpunkt.