Sie benötigen einen Fehlertyp zu erhöhen und Ihre Logik ändern zu bestimmen, ob die Matrix quadratisch ist:
inverse = []
matrix = [[1, 2], [3, 4]]
if len(matrix) != len(matrix[0]) and len(set(map(len, matrix))) != 1:
raise AttributeError('The matrix must be square') #or error of your choice
Wenn Sie jedoch einen benutzerdefinierten Fehler erzeugen möchten, können Sie von Exception erben und __str__
außer Kraft setzen:
class MatrixLenError(Exception):
pass
matrix = [[1, 2], [3, 4]]
if len(matrix) != len(matrix[0]) and len(set(map(len, matrix))) != 1:
raise MatrixLenError('The matrix must be square')
'Klasse MatrixLenError (Exception): pass; Raise MatrixLenError ("Die Matrix muss quadratisch sein") 'sollte auch funktionieren - keine Notwendigkeit," __str__ "in späteren Versionen zu überschreiben. –
Es ist ein netter Vorschlag, aber ich denke OP fragt nach der spezifischen Logik in Bezug auf die Prüfung, ob eine Matrix quadriert wird –
Außerdem müssten Sie die Länge jeder Zeile vergleichen, nicht nur die erste. –