ich eine Python-Funktion erstellt haben:Wenn Typeerror, return false
def is_cayley_table(table):
try:
if type(table) is not list:
return False
else:
n = len(table)
poss_values = range(0,n)
for i in range(0,n):
if len(table[i]) != n:
return False
for j in range(0,n):
if type(table[i][j]) is int and table[i][j] in poss_values:
return True
else:
return False
except TypeError:
return False
dann rufe ich die Funktion mit ungültigem Argument:
is_cayley_table([1, 1, 0], [0, 1, 2], [1, 2, 2])
Ich möchte die Funktion "False" zurück, aber im Moment bekomme ich das:
File "C:/Users/Jack/OneDrive/Documents/comp_project.py", line 27, in <module>
is_cayley_table([1, 1, 0], [0, 1, 2], [1, 2, 2])
TypeError: is_cayley_table() takes 1 positional argument but 3 were given
Wenn jemand helfen könnte, wäre ich sehr dankbar.
Jack
Ich weiß, erwartet. Ich versuche Fehlerbehandlung so einzurichten, dass, wenn ein Benutzer die Klammern vergisst, die Funktion im Gegensatz zu einem TypeError false zurückgibt. – Jack
Wenn Ihre Funktion eine beliebige Anzahl von Argumenten akzeptieren soll, können Sie sie mit 'def is_cayley_table (* args)' definieren. Siehe [Kann eine variable Anzahl von Argumenten an eine Funktion übergeben werden?] (Http://stackoverflow.com/questions/919680/can-a-variable-number-of-arguments-be-passed-to-a-function) – khelwood
Danke Khelwood. – Jack