【问题标题】:Print new output on same line [duplicate]在同一行打印新输出[重复]
【发布时间】:2012-08-15 11:04:59
【问题描述】:

我想将循环输出打印到屏幕的同一行。

对于 Python 3.x,我如何以最简单的方式实现这一点

我知道 Python 2.7 已通过在行尾使用逗号(即 print I)来询问此问题,但我找不到 Python 3.x 的解决方案。

i = 0 
while i <10:
     i += 1 
     ## print (i) # python 2.7 would be print i,
     print (i) # python 2.7 would be 'print i,'

屏幕输出。

1
2
3
4
5
6
7
8
9
10

我要打印的是:

12345678910

新读者也请访问此链接http://docs.python.org/release/3.0.1/whatsnew/3.0.html

【问题讨论】:

标签: python python-3.x printing


【解决方案1】:

来自help(print)

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file: a file-like object (stream); defaults to the current sys.stdout.
    sep:  string inserted between values, default a space.
    end:  string appended after the last value, default a newline.

您可以使用end 关键字:

>>> for i in range(1, 11):
...     print(i, end='')
... 
12345678910>>> 

请注意,您必须自己 print() 最后的换行符。顺便说一句,在 Python 2 中,您不会得到带有尾随逗号的“12345678910”,而是会得到 1 2 3 4 5 6 7 8 9 10

【讨论】:

  • 谢谢。是的,print i 将插入一个空格。它的行为类似于带有逗号的 python 2 的代码是什么?
  • 同样的事情,但end = ' '。与其以空白结尾,不如以空格结尾。
  • 感谢您的快速响应和更新。现在这更有意义了。我读了十几遍帮助功能,显然没有注意。 :)
  • 谢谢,方便快捷。
【解决方案2】:

您可以执行以下操作:

>>> print(''.join(map(str,range(1,11))))
12345678910

【讨论】:

  • 阅读问题。打印 i,仅适用于 python 2 而不是 python 3。
  • 好吧,我错过了。我将编辑答案。
【解决方案3】:
>>> for i in range(1, 11):
...     print(i, end=' ')
...     if i==len(range(1, 11)): print()
... 
1 2 3 4 5 6 7 8 9 10 
>>> 

这是如何做到这一点,以便打印不会在下一行的提示之后运行。

【讨论】:

    【解决方案4】:

    * 用于 python 2.x *

    使用尾随逗号避免换行。

    print "Hey Guys!",
    print "This is how we print on the same line."
    

    上述代码 sn-p 的输出将是,

    Hey Guys! This is how we print on the same line.
    

    * 用于 python 3.x *

    for i in range(10):
        print(i, end="<separator>") # <separator> = \n, <space> etc.
    

    上述代码 sn-p 的输出将是(&lt;separator&gt; = " " 时),

    0 1 2 3 4 5 6 7 8 9
    

    【讨论】:

    • 仅适用于 python 2.x 这篇文章适用于 python 3.x 打印使用
    • 那是留下一个空格。 “……伙计们!这是……”。有什么解决方法吗?
    • 第一个打印语句中的逗号如何抑制插入的空格?
    【解决方案5】:

    让我们举个例子,你想在同一行打印从 0 到 n 的数字。您可以在以下代码的帮助下做到这一点。

    n=int(raw_input())
    i=0
    while(i<n):
        print i,
        i = i+1
    

    在输入时,n = 5

    Output : 0 1 2 3 4 
    

    【讨论】:

    • 这个答案出现在低质量审查队列中,大概是因为您没有提供任何代码解释。如果此代码回答了问题,请考虑在答案中添加一些解释代码的文本。这样一来,您就更有可能获得更多支持,并帮助提问者学习新知识。
    • @imo 实际上他的代码没有回答这个问题,因为这个问题明确要求 Python 3.x。提供的代码 .. print i, ..only 适用于 Python 2
    【解决方案6】:

    与建议的类似,您可以这样做:

    print(i, end=',')
    

    输出:0,1,2,3,

    【讨论】:

    • 最后 3 个呢?
    【解决方案7】:
    print("single",end=" ")
    print("line")
    

    这将给出输出

    single line
    

    对于提出的问题使用

    i = 0 
    while i <10:
         i += 1 
         print (i,end="")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2017-05-30
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多