1

次のように、電圧を上下に出力するプログラムを使用しています。

2.333

2.334

2.336

2.445

しかし、私はそれが欲しい:

2.333 2.334 2.336 2.445 

わかりました、これが私にとってうまくいくものです:

while True:
   voltsdiff = adc.readADCDifferential01(4096, 8)
   import sys
   print '{:.4f}'.format(voltsdiff),
   sys.stdout.flush()
4

3 に答える 3

2

コンマでそれらを印刷するだけです

print "%.4f" % (voltsdiff),

さらに、formatメソッドを使用することもできます。ここでフォーマットについてすべて読むことができます

print "{:.4f}".format(voltsdiff),

リストを繰り返してこれらの値を出力しているとしましょう。次のようなことができます

data = [2.333, 2.334, 2.336, 2.445]
print " ".join(data)
于 2013-10-26T17:08:26.910 に答える
0

他の人が答えたように、Python 2 で改行なしで出力を印刷するには、print ステートメントの最後にコンマを置きます。

print "%.4f" % voltsdiff,

ただし、標準出力はデフォルトで行バッファリングされるため、これは出力をフラッシュしません (改行が出力に追加された場合にのみフラッシュされます)。それを修正する方法がいくつかあります。

まず、ある時点で、基本的なprintステートメントだけで改行を追加できます。たとえば、次のようになります。

for i, voltsdiffs in enumerate(many_voltages):
    print "%.4f" % voltsdiffs,
    if i % 10 == 9:
         print # puts a newline after every 10 values

次に、以下を使用して、標準出力を明示的にフラッシュできますsys.stdout.flush()

print "%.4f" % voltsdiffs,
sys.stdout.flush()

最後に、パラメータを持つ Python 3 スタイルのprint関数を使用できflushます (これは、 の場合にフラッシュを実行しますTrue)。

# before any other code
from __future__ import print_function

# later
print(format(voltsdiffs, ".4f"), end=" ", flush=True)

コードを Python 3 に移植する場合に将来使用する必要があるため、一般的には最後のバージョンをお勧めします。また、印刷のそれぞれの特殊な特性 (最後に改行がない、フラッシュする) を備えた非常に明示的です自動的に) 別のキーワード引数によって呼び出されます。

于 2013-10-26T18:56:34.613 に答える