关于#Python#的问题,如何解决?

写一段代码满足以下要求:
#Python #方阵

  1. 将一个n阶方阵填满数(如图)

    img

  2. 将矩阵的最外层称为“轨道0”第二层称为“轨道1”以此类推(如图)

    img

  3. 根据指令将方阵的轨道逆时针旋转一格(如图)

    img

这个挺有意思的,完成

def matrix(n):
    return [[ i * n + j + 1 for j in range(n)] for i in range(n)]

def show_matrix(x):
    w = len(str(x[-1][-1]))
    for row in x:
        for it in row:
            print(str(it).rjust(w),end=' ')
        print()

def circle_matrix(x, n):
    """
    逆时针旋转
    :param x: 矩阵
    :param n: 轨道数
    :return:
    """
    if n > len(x) / 2:
        print(u"轨道数异常")
        return
    tmp = x[n][n]
    max = len(x) - n - 1
    for i in range(n,max):
        x[n][i] = x[n][i+1]
    for i in range(n,max):
        x[i][max] = x[i + 1][max]
    for i in range(max,n,-1):
        x[max][i] = x[max][i - 1]
    for i in range(max,n,-1):
        x[i][n] = x[i - 1][n]
    x[n+1][n] = tmp

if __name__ == '__main__':
    m5 = matrix(5)
    show_matrix(m5)
    circle_matrix(m5,1)
    print("------------------")
    show_matrix(m5)

第一个

def fang(n):
    return [[ i * n + j + 1 for j in range(n)] for i in range(n)]

def disp(x):
    w = len(str(x[-1][-1]))
    for row in x:
        for it in row:
            print(str(it).rjust(w),end=' ')
        print()

if __name__ == '__main__':
    disp(fang(5))
    disp(fang(10))


img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632