编写兼容任意尺寸矩阵及标量的方阵判断函数遇参数未使用问题
判断方阵的函数实现(支持标量)
核心逻辑
要解决这个问题,核心要处理两种输入:标量和矩阵。标量直接视为1x1方阵返回True;矩阵则需要验证行数等于列数,且所有行的长度一致。同时要确保函数参数被实际使用,解决未使用参数的警告。
Python 实现代码
import numbers def is_square(input_data): # 处理标量:int/float等数字类型都算1x1方阵 if isinstance(input_data, numbers.Number): return True # 先确认是二维结构(列表的列表/元组的元组) try: first_row_length = len(input_data[0]) except (TypeError, IndexError): # 一维结构(比如单个列表)不是方阵 return False row_count = len(input_data) # 检查每一行的长度是否等于行数 for row in input_data: if len(row) != row_count: return False return True
测试场景验证
- 标量:
is_square(3.14)→True - 3x3方阵:
is_square([[1,2,3],[4,5,6],[7,8,9]])→True - 3x2非方阵:
is_square([[1,2],[3,4],[5,6]])→False - 一维向量:
is_square([1,2,3])→False
解决未使用参数警告的关键
- 参数名一致:函数定义的参数(比如上面的
input_data)必须和函数体内引用的变量名完全一致,别出现定义写matrix但代码里用mat的情况。 - 实际使用参数:确保参数在函数逻辑中被调用,比如用它做类型判断、取长度、遍历等操作,不能定义了参数却全程没碰它。
- 避免冗余参数:如果函数定义了多余的参数但没用到,直接删掉,只保留需要的输入参数。
内容的提问来源于stack exchange,提问作者Joshua Scully
相关产品推荐
相关产品推荐

