我已經創建了一個Python函數:如果類型錯誤,返回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
我然後調用函數與無效參數:
is_cayley_table([1, 1, 0], [0, 1, 2], [1, 2, 2])
我希望函數返回 「假」,但目前我得到這個:
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
如果任何人都可以幫助,我會非常感激。
傑克
我知道它會工作。我試圖設置錯誤處理,以便如果用戶忘記括號,該函數返回false,而不是TypeError。 – Jack
如果你想讓你的函數接受任意數量的參數,你可以使用'def is_cayley_table(* args)'來定義它。請參閱[可以傳遞給一個函數的可變數量的參數?](http://stackoverflow.com/questions/919680/can-a-variable-number-of-arguments-be-passed-toa-a-function) – khelwood
謝謝Khelwood。 – Jack