我编写了一个程序来在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()
答案 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="")
它不考虑小尺寸,但是比以前更灵活。