想要避免在输出的最后一行中出现空白的新行

时间:2019-07-03 16:15:58

标签: python python-3.x

我不希望在输出中打印空行

我尝试过end="",但是由于printloop中,因此无法正常工作

def main():
    a=int(input())
    b=int(input())
    for i in range(a,b+1):
        prime=0
        for x in range(2,i):
            if(i%x==0):
                prime=prime+1
            else:
                prime=prime+0
        if(prime==0):
            print(i, end="") 
main()

实际结果:

907
911
919
929
937
941
947
953
967
971
977
983
991
997

预期:

907
911
919
929
937
941
947
953
967
971
977
983
991
997

3 个答案:

答案 0 :(得分:0)

您可能要看一下:how can I remove a trailing newline。它声明使用.rstrip(),但您应阅读文档以确保内容。

答案 1 :(得分:0)

一种可能性是将结果组合成一个列表,并在最后打印该列表(由'\n'连接):

def main():
    a=int(input())
    b=int(input())
    results = []
    for i in range(a,b+1):
        prime=0
        for x in range(2,i):
            if(i%x==0):
                prime=prime+1
            else:
                prime=prime+0
        if(prime==0):
            results.append(i)
    print('\n'.join(str(i) for i in results))
main()  

我不确定您要做什么,也可以尝试用以下代码替换上面代码中的print语句

print('\n'.join(str(i) for i in results), end = '')  

答案 2 :(得分:0)

您可以像这样动态地打印出东西

for i in range(10):
    print(i, sep=' ', end='', flush=True)

这将输出:

  

123456789

请参阅Print in one line dynamically,了解更多可能符合您需要的算法!