首页 > 解决方案 > 为整数执行 for 循环时,正在打印一个额外的空白行

问题描述

for i in range(1,int(input())+1):
    print(((10**i-1)//9)**2)

在 for 循环中打印了一个额外的空白行。

我试过从不同的网站寻求帮助。
当前输出为:

1
121
12321
1234321
123454321
--here the extra line is being printed--

预期的输出将是:

1
121
12321
1234321
123454321

标签: pythonpython-3.x

解决方案


就是这样print工作的。它打印其参数的字符串表示形式,其后end默认为换行符。这就是为什么您的输出并非一开始就在同一行。

您可以像这样手动指定end

for i in range(1,int(input())+1):
    print(((10**i-1)//9)**2, end='')

但随后一切都会在同一条线上。解决方法是单独打印换行符。

for i in range(1,int(input())+1):
    print()
    print(((10**i-1)//9)**2, end='')

在这里,换行符在字符串之前打印,以防止出现尾随。但是,将会有一个领先的换行符。但这可以通过不调用print()循环的第一次迭代来解决。

for i in range(1,int(input())+1):
    if i != 0:
        print()
    print(((10**i-1)//9)**2, end='')

推荐阅读