1. ホーム
  2. python

[解決済み] 改行やスペースを入れずに印刷する方法

2022-03-17 19:59:53

質問

Pythonでやりたいのですが。この例でC言語でやりたいこと。

#include <stdio.h>

int main() {
    int i;
    for (i=0; i<10; i++) printf(".");
    return 0;
}

出力します。

..........

Pythonの場合。

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

Pythonの場合。 print を追加します。 \n またはスペースが必要です。どうすればそれを避けることができますか?私は、文字列を次のように追加する方法を知りたいのです。 stdout .

解決方法は?

Python3では sep=end= パラメータは print 関数を使用します。

文字列の末尾に改行を付けないようにする。

print('.', end='')

表示したいすべての関数引数の間にスペースを入れないようにする。

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

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

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

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

Python 2.6と2.7

Python 2.6 からは print 関数は、Python 3 から __future__ モジュール :

from __future__ import print_function

で、上記の Python 3 の解決策を利用することができます。

ただし flush のバージョンでは、キーワードは利用できません。 print からインポートされた関数は __future__ Python 3、より具体的には 3.3 以降でのみ動作します。それ以前のバージョンでは、手動で sys.stdout.flush() . また、このインポートを行うファイル内の他のすべてのprint文も書き換える必要があります。

または sys.stdout.write()

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

を呼び出す必要がある場合もあります。

sys.stdout.flush()

を確保するために stdout はすぐにフラッシュされます。