Я создал функцию Python:Если TypeError, вернуть Ложные
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-to-a-function) – khelwood
Спасибо Хелвуд. – Jack