如何以盒子的形式形成 X 的图案,而不是 X 的位置交替的每一行?

Posted

技术标签:

【中文标题】如何以盒子的形式形成 X 的图案,而不是 X 的位置交替的每一行?【英文标题】:How to form a pattern of X in the format of a box but instead every line the position of X alternates? 【发布时间】:2022-01-22 03:40:50 【问题描述】:

如果有人可以帮助我解决这个问题,那将是一个很大的帮助。所以手头的任务总结如下:

编写一个名为diagonal(n) 的函数,它接受一个正整数参数n,并在所有四个边和主对角线上打印一个n x n 带有Xs 的框模式。该插图显示了n = 9 的所需输出。

XXXXXXXXX
XX      X
X X     X
X  X    X
X   X   X
X    X  X
X     X X
X      XX
XXXXXXXXX

所以我目前的进展是:

def diagonal(n):

    for row in range(n):

        for col in range(1):

            print("X", end="")

        print()

diagonal(7)

如果有人可以帮助我,我将不胜感激。 谢谢

【问题讨论】:

【参考方案1】:

这是一个可能的解决方案:

def diagonal(n):
    row = ""
    for i in range(1, (n+1)):
        for j in range(1, (n+1)):
            if(i == 1 or i == n or j == 1 or j == n or i == j):
                row = row + "X"
            else:
                row = row + " "
        print(row)
        row = ""
diagonal(9)

XXXXXXXXX
XX      X
X X     X
X  X    X
X   X   X
X    X  X
X     X X
X      XX
XXXXXXXXX

【讨论】:

以上是关于如何以盒子的形式形成 X 的图案,而不是 X 的位置交替的每一行?的主要内容,如果未能解决你的问题,请参考以下文章

打印 X型 图案 ---Java

几种常见的位运算

Python-openpyxl教程10 - 图表布局,填充图案以及进阶图表

如何组合散点图以形成具有公共 X 轴的散点图矩阵以用于不同的 Y 轴?

对大数使用对数而不是除法?

如何在 ListView x:name 内的 Views 中访问 x:name?是不是可以设置不同形式的用户输入?