【发布时间】:2019-10-08 14:04:01
【问题描述】:
编写一个函数 describe(matrix),将 2D 数组作为输入,如果矩阵是正方形,则返回“Square”,如果矩阵是矩形,则返回“Rectangular”,如果两者都不是,则返回“Invalid”。 方阵具有相同的行数和列数。 矩形矩阵可以有不同的行数和列数,但每一行的长度相同。 无效矩阵的行长度不一致。 现在所有的方阵也是矩形,所以我知道这应该是一个子集。
我基本上可以判断我的矩阵是正方形还是无效。我的代码也为矩形返回“无效”。我不知道如何定义列以及如何计算某个东西是正方形还是矩形。
def describe(matrix):
if all([len(i)==len(matrix) for i in matrix]):
return "Square"
else:
return "Invalid"
>>> describe([[0]])
'Square'
>>> describe([[0, 1, 2], [2, 1, 0], [3, 3, 3]])
'Square'
>>> describe([[0, 1, 2], [2, 1], [3, 3, 3]])
'Invalid'
>>> describe([[0, 1], [1, 0], [3, 3]])
'Rectangular'
>>> describe([[0, 1], [1, 0], [3, 3]])
'Rectangular'
>>> describe([[0, 1, 2, 3, 4, 5]])
'Rectangular'
>>> describe([[0, 1, 2, 3, 4, 5], [5, 4, 3, 2, 1, 0]])
'Rectangular'
【问题讨论】:
-
先判断矩阵是否为矩形,再判断是否为正方形
-
如果您知道
try和except构造,您可以事先检查您的 matrix 是否为 2D:try: matrix[0][0]和except TypeError: return "Invalid"
标签: python