改行やスペースなしで印刷する方法 質問する

改行やスペースなしで印刷する方法 質問する

printPython で次の例を使用して考えてみましょう。

>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .

各値の間には改行またはスペースが追加されます。これを回避して、代わりに出力を次のようにするにはどうすればよいでしょうか....。言い換えると、標準出力ストリームに文字列を「追加」するにはどうすればよいでしょうか。

ベストアンサー1

Python 3では、のsep=およびパラメータを使用できます。end=print関数:

文字列の末尾に改行を追加しない場合は、次のようにします。

print('.', end='')

印刷するすべての関数引数の間にスペースを追加しないようにするには、次のようにします。

print('a', 'b', 'c', sep='')

どちらのパラメータにも任意の文字列を渡すことができ、両方のパラメータを同時に使用することもできます。

バッファリングに問題がある場合は、flush=Trueキーワード引数を追加して出力をフラッシュできます。

print('.', end='', flush=True)

Python 2.6 および 2.7

printPython 2.6からは、Python 3から関数をインポートするか、__future__モジュール:

from __future__ import print_function

これにより、上記の Python 3 ソリューションを使用できるようになります。

ただし、キーワードは Python 2からインポートされた関数flushのバージョンでは利用できないことに注意してください。これは Python 3、具体的には 3.3 以降でのみ機能します。それより前のバージョンでは、 を呼び出して手動でフラッシュする必要があります。また、このインポートを行うファイル内の他のすべての print ステートメントを書き換える必要があります。print__future__sys.stdout.flush()

または、sys.stdout.write()

import sys
sys.stdout.write('.')

また、電話する必要があるかもしれません

sys.stdout.flush()

すぐにフラッシュされることを確認してくださいstdout

おすすめ記事