Python中的矩形框图案

时间:2019-10-07 03:49:52

标签: python-3.x

我编写了一个程序来在python中打印矩形框图案。但是,最后一个字符跳到了第一行的右侧。所需的输出和实际生成的输出在代码注释中提到。我的代码有什么问题?

for i in range(10):
    print("x",end="")

for j in range(2):
    print("x"+" "*9+"x")

for k in range(10):
    print("x",end="")

#desired output:       xxxxxxxxxxx            my output:   xxxxxxxxxxx        x
#                      x         x                         x         x
#                      x         x                         x         x
#                      xxxxxxxxxxx                         xxxxxxxxxx


input()

1 个答案:

答案 0 :(得分:0)

之所以会这样,是因为在第一个x循环中最后打印的for不会打印换行符(由于end="")。

如果要获得所需的输出,则需要在第一个for循环之后(通过调用print())打印换行符,并且还需要将range更改为11第一个for和最后一个循环。

for i in range(11):
    print("x",end="")

print()

for j in range(2):
    print("x"+" "*9+"x")

for k in range(11):
    print("x",end="")

输出:

xxxxxxxxxxx
x         x
x         x
xxxxxxxxxxx

此外,这种更通用的方法如何:

WIDTH = 11
HEIGHT = 4

for i in range(WIDTH):
    print("x", end="")

print()

for j in range(HEIGHT - 2):
    print("x" + " "*(WIDTH - 2) + "x")

for k in range(WIDTH):
    print("x", end="")

它不考虑小尺寸,但是比以前更灵活。