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

如何在Python中创建网格并旋转90度N次(禁用NumPy)

问题分析与解决方案

你的代码输出None的核心原因是rotate90函数没有返回值,另外还有循环范围、旋转逻辑的问题,以下是具体修正:

原代码的问题点

  1. 无返回值:rotate90函数只构造了newList但没有用return返回,所以调用后得到None
  2. 循环范围错误:用range(N-1)会少遍历一行一列,应该遍历整个N×N矩阵的元素
  3. 矩阵构造错误:直接把所有元素append到一维列表,没有按行拆分成二维结构
  4. 旋转逻辑错误:没有实现符合预期的90度旋转逻辑

修正后的代码

N = int(input())

measurements = []
for i in range(N):
    item = list(map(int, input().split()))
    measurements.append(item)

def rotate90(matrix):
    n = len(matrix)
    rotated = []
    # 从最后一列到第一列遍历,每列元素组成新矩阵的一行
    for col in range(n-1, -1, -1):
        new_row = []
        for row in range(n):
            new_row.append(matrix[row][col])
        rotated.append(new_row)
    return rotated

# 执行旋转并打印结果
newArray = rotate90(measurements)
for row in newArray:
    print(' '.join(map(str, row)))

代码说明

  • 函数新增return rotated语句,返回构造好的旋转后矩阵
  • 用len(matrix)获取矩阵大小,避免依赖全局变量N
  • 按逆序遍历原矩阵的列,每列的元素从上到下取出组成新矩阵的一行,正好匹配你给出的预期输出
  • 最后通过循环打印每行元素,格式化为空格分隔的字符串

运行修正后的代码,输入示例中的3和对应矩阵,就能得到预期输出:

1 2 3
3 5 7
4 6 9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:12:36