ループした出力を同じ行の画面に印刷したい。
Python 3.xでこれを最も簡単な方法で行うにはどうすればいいですか?
私はこの質問が行の終わりにカンマを使用することによってPython 2.7のために尋ねられたことを知っています、すなわち私を印刷します、しかし私は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
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
を得ます。
* 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
質問のためにuse
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