You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python矩阵函数编写求助:rowZero函数错误修正及功能实现

问题修正与完整函数实现

原rowZero函数的错误修正

你的代码核心问题是逻辑搞反了——不是打完0再额外加1,而是要在指定位置替换原本的0,同时参数定义也不符合需求(需求是单参数length)。先给你修正后的rowZero:

def rowZero(length):
    # 打印length个连续的0,最后换行
    print('0' * length)

如果想用循环实现(和你原代码风格一致),可以写成:

def rowZero(length):
    for _ in range(length):
        print('0', end='')
    print()  # 打印完一行后换行

按需求实现所有函数

下面是满足你全部需求的完整代码,包含参数默认值、边界判断:

1. rowZero(length) - 打印全零行

def rowZero(length):
    print('0' * length)

2. rowZeroOne(length, position=0) - 指定位置替换为1

这里把position设为默认值0,同时加了边界判断确保position不超过行长度

def rowZeroOne(length, position=0):
    # 处理position的边界:不能小于0,不能大于length
    position = max(0, min(position, length))
    # 拼接字符串:前position个0 + '1' + 剩下的0
    row = '0' * position + '1' + '0' * (length - position - 1) if position < length else '0' * length + '1'
    print(row)

3. rowZeroSymbol(length, position=0, symbol='#') - 指定位置替换为自定义符号

def rowZeroSymbol(length, position=0, symbol='#'):
    position = max(0, min(position, length))
    if position < length:
        row = '0' * position + str(symbol) + '0' * (length - position - 1)
    else:
        row = '0' * length + str(symbol)
    print(row)

4. matrixWrapper(function, size, symbol=None) - 矩阵包装函数

实现单位矩阵(调用rowZeroOne)和自定义对角符号矩阵(调用rowZeroSymbol)的打印:

def matrixWrapper(function, size, symbol=None):
    for i in range(size):
        # 根据传入的函数和参数,打印每一行
        if function == rowZeroOne:
            # 打印单位矩阵:第i行的第i个位置设为1
            function(size, i)
        elif function == rowZeroSymbol and symbol is not None:
            # 打印对角为指定符号的矩阵:第i行的第i个位置设为symbol
            function(size, i, symbol)
        elif function == rowZero:
            # 打印全零矩阵
            function(size)

调用示例

# 打印5x5全零矩阵
matrixWrapper(rowZero, 5)

# 打印5x5单位矩阵
matrixWrapper(rowZeroOne, 5)

# 打印5x5对角为'*'的矩阵
matrixWrapper(rowZeroSymbol, 5, '*')

内容的提问来源于stack exchange,提问作者DamnGood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 20:55:20