任何人都可以在Python中更正此图案打印代码

问题描述 投票:0回答:1

[我刚开始使用Python 3打印模式时。但是我对此代码感到困惑有人可以为我更正此代码,因为我感到困惑,这是我的任务

n = int(input('\n Enter Your Value of N : '))

answer = [[1]]
for i in range(2, n+1):
    t = [i]*((2*i)-3)
    answer.insert(0,t)
    answer.append(t)
    for a in answer:
        a.insert(0,i)
        a.append(i)
    answerfinal = []
    for a in answer:
        answerfinal.append("".join(str(a)))
    for a in answerfinal:
        print(a)

此代码用于生成这样的输出:

INPUT : 5

OUTPUT :

555555555
544444445
543333345
543222345
543212345
543222345
543333345
544444445
555555555

任何人都可以纠正并向我解释此代码

及其生成的输出,像这样

Enter Your Value of N : 5
[2, 2, 2, 2, 2]
[2, 1, 2]
[2, 2, 2, 2, 2]
[3, 3, 3, 3, 3, 3, 3]
[3, 3, 2, 2, 2, 2, 2, 3, 3]
[3, 2, 1, 2, 3]
[3, 3, 2, 2, 2, 2, 2, 3, 3]
[3, 3, 3, 3, 3, 3, 3]
[4, 4, 4, 4, 4, 4, 4, 4, 4]
[4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 4]
[4, 4, 3, 3, 2, 2, 2, 2, 2, 3, 3, 4, 4]
[4, 3, 2, 1, 2, 3, 4]
[4, 4, 3, 3, 2, 2, 2, 2, 2, 3, 3, 4, 4]
[4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 4]
[4, 4, 4, 4, 4, 4, 4, 4, 4]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
[5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5]
[5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5]
[5, 5, 4, 4, 3, 3, 2, 2, 2, 2, 2, 3, 3, 4, 4, 5, 5]
[5, 4, 3, 2, 1, 2, 3, 4, 5]
[5, 5, 4, 4, 3, 3, 2, 2, 2, 2, 2, 3, 3, 4, 4, 5, 5]
[5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5, 5]
[5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5]
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

请为我更正

python python-3.x
1个回答
0
投票

我将尽力不只是给您代码,而是解释一下以使您朝正确的方向前进。首先,您立即知道第一行,对吗?它是输入数字的2*n-1倍。因此,您可以立即设置列表。看看this例如如何在python中初始化列表。现在您有了列表,您必须在每次迭代中更改内部部分。如果要遍历i in range(1,n),则最里面的部分始终对应于2*i-1条目,或者以正确的方式遍历2*(n-i)-1条目。因此,对于第二行(插入4s),您必须准确地插入n-i2*(n-i)-1次。证明:n=5, i=1 => n-i = 42*(n-i)-1 = 2*4-1 = 7。现在,您要将其放入列表。对于如何执行此操作,您可以查看片式符号,该符号进行了精美的说明here。如果操作正确,则只需几行代码即可完成。

希望这对您的作业有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.