3

私はpython2.6を使用しており、「print」から改行を削除することに関する多くのリンクを読みましたが、モジュロ記号(%)を使用したフォーマットと一緒に使用例を見つけることができません。私のプログラムでは、計算されたデータのループ行に書き込もうとしていますが、各行のデータは異なる計算から取得されます。

whileループ
    ...value1とvalue2を計算する
    print('%10d%10s')%(value1、value2)[1]
    ...value3とvalue4を計算する
    print('%7s%15d')%(value3、value4)[2]
    印刷#これは改行がどこから来るべきかです

だから私は取得したいと思います:

value1 value2 value3 value4
value5 value6 value7 value8
..。

基本的に、このアプローチは私のプログラムの読みやすさを維持します(各実数直線には20以上の計算された位置があります)。反対の方法は、すべてのデータを1つの長い文字列に連結することですが、読みやすさが失われる可能性があります。
[1]と[2]のように「print()%()」構文を使用して改行を削除することは可能ですか?

4

3 に答える 3

6

ステートメントの最後にコンマ(,)を追加すると、改行は省略されます。

print ('%10d %10s') % (value1, value2),

http://docs.python.org/reference/simple_stmts.html#printから:

ステートメントがコンマで終わっていない限り、文字'\n'は最後に書き込まれます。printステートメントにキーワードのみが含まれている場合、これが唯一のアクションですprint

于 2012-08-07T09:45:04.613 に答える
1
while loop
    ... calulating value1 and value2
    print '%10d %10s') % (value1, value2) , 
    ... calulating value3 and value4
    print ('%7s %15d') % (value3, value4) ,
    print #this is where newline should come from

,最後に注意してくださいprints

于 2012-08-07T09:45:43.530 に答える
0

print末尾のコンマを使用せずに(または、Py3 /を使用from __future__ import print_functionして、キーワード引数を使用して)これを行う唯一の方法はend、すべての印刷を一度に実行する必要があります。

while ...:
    # calulating value1 and value2
    # calulating value3 and value4
    print '%10d %10s %7s %15d' % (value1, value2, value3, value4)

これにより読みやすさが問題になる場合は、次のことができるように計算ロジックを関数に組み込むことを検討してください。

while ...:
    value1 = calculate_value1()
    value2 = calculate_value2()
    value3 = calculate_value3()
    value4 = calculate_value4()
    print '%10d %10s %7s %15d' % (value1, value2, value3, value4)
于 2012-08-07T10:02:22.537 に答える