2013-10-26 41 views
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() 
+1

追加commna(',')在'print'聲明的末尾:'打印 「%.4f」 %(voltsdiff),' – falsetru

回答

0

正如其他人回答,打印輸出沒有在Python 2換行,加上一個逗號,在打印語句的末尾:

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,將來需要使用該版本。它也非常明確,具有打印的每個特性換行符,自動刷新)由一個單獨的關鍵字參數調用。

+0

是的!我嘗試了以下,它的工作很棒! – Rico

+0

@Rico:如果我的回答有助於解決您的問題,請考慮點擊左側的複選標記來接受它。 – Blckknght

2

只是一個逗號

print "%.4f" % (voltsdiff), 
打印出來

此外,你可能想使用format方法。你可以閱讀所有關於格式化here

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

比方說,你是通過反覆清單打印這些值,你可以,如果你打印到終端做這樣的事情

data = [2.333, 2.334, 2.336, 2.445] 
print " ".join(data) 
0

,你可以使用標準輸出與\ R或\ b逸出

sys.stdout.write("\r%.4f\t%.4f\t%.4f\t%.4f" % (v1, v2, v3, v4)) 

的爲 「\ r」 轉義移動光標在線(等上同一行CR)的起點,也「\ b」是untab:向後移動4個位置。

PS:標準輸出做一些緩存,你應該叫sys.stdout.flush(),以確保其結果是在要求終端,之前緩衝區已滿