Печать нового вывода на той же строке [дубликат]


этот вопрос уже есть ответ здесь:

Я хочу распечатать циклический вывод на экран в той же строке.

как это сделать самым простым способом для Python 3.x

Я знаю, что этот вопрос был задан для Python 2.7 запятой в конец строки т. е. печать 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

7 72

7 ответов:

С 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() последняя новая строка самостоятельно. Кстати, вы не получите "12345678910" в Python 2 с конечной запятой, вы получите 1 2 3 4 5 6 7 8 9 10 вместо.

* для 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.

вывод для приведенного выше фрагмента кода будет (когда <separator> = " "),

0 1 2 3 4 5 6 7 8 9

подобно тому, что было предложено, вы можете сделать:

print(i,end=',')

выход: 0, 1, 2, 3,

вы можете сделать что-то типа:

>>> print(''.join(map(str,range(1,11))))
12345678910
print("single",end=" ")
print("line")

это даст выход

single line

для заданного вопроса используйте

i = 0 
while i <10:
     i += 1 
     print (i,end="")
>>> 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 
>>> 

вот как это сделать, чтобы печать не выполнялась за подсказкой на следующей строке.

рассмотрим пример, где вы хотите напечатать числа от 0 до N в той же строке. Вы можете сделать это с помощью следующего кода.

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

на входе, n = 5

Output : 0 1 2 3 4