Wo liegt der Fehler?
Verfasst: Montag 30. Oktober 2023, 17:34
Kann mir jemand helfen? Die Funktion hat zuvor schon funktioniert, jetz bekomme ich aber immer diesen Fehler. Chat GPT gibt auch nichts sinnvolles von sich.
import random
#Liste der Kategorien mit den zugehörigen Werten
durchflusskategorien = [("MJNQT", 812), ("MQ", 1845), ("HQ1", 5150), ("HQ5", 6620), ("HQ30", 10050), ("HQ100", 11170)]
#zufällig generierter integer zur Überprüfung
q_durchflussrate = random.randint(812, 12000)
print(q_durchflussrate)
#Union wird importiert um dem Parameter q die 2 types float und int zuzuweisen
from typing import Union
#Definieren der Funktion
def q_kategorie(q: Union[float, int], kat: list):
"""Funktion, die eine Durchflussrate (type: float oder int) übernimmt und einer Durchflusskategorie
aus einer Liste mit Tupeln aus Kategorienamen (type: str) und Durchflussrate zuordnet.
Die Schleife for i in range(len(kat)) dient dazu, durch die Elemente (Paare) in der Liste kat zu iterieren.
Die Schleife durchläuft alle Elemente der Liste kat nacheinander, wobei i die Position des aktuellen Elements
in der Liste darstellt.
if i < len(kat) - 1: Stellt sicher, dass das Ende der Liste nicht erreicht wird.
kat[1] <= q: Ob der Wert des i-ten Elements aus der Liste kleiner oder gleich q ist.
kat[i + 1][1] > q: Ob der Wert des darauffolgenden Elements größer als q ist.
Sind diese 3 Bedingungen gegeben gibt die Funktion mit return kat[0] die Kategorie des i-ten Elements
als String aus.
Danach werden mit except 2 Fehler abgefangen, die entstehen, wenn die Parameter der Funktion nicht die
richtigen Datentypen besitzen. Zum Schluss folgt raise."""
try:
for i in range(len(kat)):
if i < len(kat) - 1 and kat[1] <= q and kat[i + 1][1] > q:
return kat[0]
except TypeError:
print("TypeError")
except IndexError:
print("IndexError")
raise
#Verwenden der Funktion
q_kategorie(q_durchflussrate, durchflusskategorien)
Fehler:
Traceback (most recent call last):
File /opt/conda/lib/python3.10/typing.py:668 in __init__
code = compile(arg, '<string>', 'eval')
File <string>:1
26.10.2023
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File /opt/conda/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3508 in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
Cell In[132], line 19
def q_kategorie(q: Union[float, int], kat: list):
File /opt/conda/lib/python3.10/typing.py:309 in inner
return cached(*args, **kwds)
File /opt/conda/lib/python3.10/typing.py:403 in __getitem__
return self._getitem(self, parameters)
File /opt/conda/lib/python3.10/typing.py:515 in Union
parameters = tuple(_type_check(p, msg) for p in parameters)
File /opt/conda/lib/python3.10/typing.py:515 in <genexpr>
parameters = tuple(_type_check(p, msg) for p in parameters)
File /opt/conda/lib/python3.10/typing.py:164 in _type_check
arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)
File /opt/conda/lib/python3.10/typing.py:142 in _type_convert
return ForwardRef(arg, module=module, is_class=allow_special_forms)
File /opt/conda/lib/python3.10/typing.py:670 in __init__
raise SyntaxError(f"Forward reference must be an expression -- got {arg!r}")
File <string>
SyntaxError: Forward reference must be an expression -- got '26.10.2023'
import random
#Liste der Kategorien mit den zugehörigen Werten
durchflusskategorien = [("MJNQT", 812), ("MQ", 1845), ("HQ1", 5150), ("HQ5", 6620), ("HQ30", 10050), ("HQ100", 11170)]
#zufällig generierter integer zur Überprüfung
q_durchflussrate = random.randint(812, 12000)
print(q_durchflussrate)
#Union wird importiert um dem Parameter q die 2 types float und int zuzuweisen
from typing import Union
#Definieren der Funktion
def q_kategorie(q: Union[float, int], kat: list):
"""Funktion, die eine Durchflussrate (type: float oder int) übernimmt und einer Durchflusskategorie
aus einer Liste mit Tupeln aus Kategorienamen (type: str) und Durchflussrate zuordnet.
Die Schleife for i in range(len(kat)) dient dazu, durch die Elemente (Paare) in der Liste kat zu iterieren.
Die Schleife durchläuft alle Elemente der Liste kat nacheinander, wobei i die Position des aktuellen Elements
in der Liste darstellt.
if i < len(kat) - 1: Stellt sicher, dass das Ende der Liste nicht erreicht wird.
kat[1] <= q: Ob der Wert des i-ten Elements aus der Liste kleiner oder gleich q ist.
kat[i + 1][1] > q: Ob der Wert des darauffolgenden Elements größer als q ist.
Sind diese 3 Bedingungen gegeben gibt die Funktion mit return kat[0] die Kategorie des i-ten Elements
als String aus.
Danach werden mit except 2 Fehler abgefangen, die entstehen, wenn die Parameter der Funktion nicht die
richtigen Datentypen besitzen. Zum Schluss folgt raise."""
try:
for i in range(len(kat)):
if i < len(kat) - 1 and kat[1] <= q and kat[i + 1][1] > q:
return kat[0]
except TypeError:
print("TypeError")
except IndexError:
print("IndexError")
raise
#Verwenden der Funktion
q_kategorie(q_durchflussrate, durchflusskategorien)
Fehler:
Traceback (most recent call last):
File /opt/conda/lib/python3.10/typing.py:668 in __init__
code = compile(arg, '<string>', 'eval')
File <string>:1
26.10.2023
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File /opt/conda/lib/python3.10/site-packages/IPython/core/interactiveshell.py:3508 in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
Cell In[132], line 19
def q_kategorie(q: Union[float, int], kat: list):
File /opt/conda/lib/python3.10/typing.py:309 in inner
return cached(*args, **kwds)
File /opt/conda/lib/python3.10/typing.py:403 in __getitem__
return self._getitem(self, parameters)
File /opt/conda/lib/python3.10/typing.py:515 in Union
parameters = tuple(_type_check(p, msg) for p in parameters)
File /opt/conda/lib/python3.10/typing.py:515 in <genexpr>
parameters = tuple(_type_check(p, msg) for p in parameters)
File /opt/conda/lib/python3.10/typing.py:164 in _type_check
arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)
File /opt/conda/lib/python3.10/typing.py:142 in _type_convert
return ForwardRef(arg, module=module, is_class=allow_special_forms)
File /opt/conda/lib/python3.10/typing.py:670 in __init__
raise SyntaxError(f"Forward reference must be an expression -- got {arg!r}")
File <string>
SyntaxError: Forward reference must be an expression -- got '26.10.2023'