112

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

我如何以最简单的方式为 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

4

7 回答 7

208

来自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而是会得到。

于 2012-08-20T04:19:09.250 回答
37

* 对于 python 2.x *

使用尾随逗号来避免换行。

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

上述代码片段的输出将是,

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.

上述代码片段的输出将是 (when <separator> = " "),

0 1 2 3 4 5 6 7 8 9
于 2015-10-11T17:06:26.323 回答
13

与建议的类似,您可以执行以下操作:

print(i, end=',')

输出:0,1,2,3,

于 2016-08-30T20:12:36.500 回答
7
print("single",end=" ")
print("line")

这将给出输出

single line

对于问的问题使用

i = 0 
while i <10:
     i += 1 
     print (i,end="")
于 2016-10-07T15:50:11.383 回答
5

您可以执行以下操作:

>>> print(''.join(map(str,range(1,11))))
12345678910
于 2012-08-20T04:23:04.897 回答
2
>>> 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 
>>> 

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

于 2012-08-21T18:00:30.947 回答
1

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

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

在输入时,n = 5

Output : 0 1 2 3 4 
于 2016-08-25T19:15:34.317 回答