次のようなコードがあります:
score = 100
name = 'Alice'
print('Total score for %s is %s', name, score)
を印刷したいのですTotal score for Alice is 100
が、 と表示されますTotal score for %s is %s Alice 100
。すべてを正しい順序と書式で印刷するにはどうすればよいですか?
参照:一度に複数のものを同じ行に印刷するにはどうすればよいでしょうか?;変数の値を文字列内に入れる(文字列内に挿入する)にはどうすればよいでしょうか?
ベストアンサー1
これを行うには多くの方法があります。%
-formatting を使用して現在のコードを修正するには、タプルを渡す必要があります。
タプルとして渡します:
print("Total score for %s is %s" % (name, score))
要素が 1 つだけのタプルは次のようになります('this',)
。
他に一般的な方法をいくつか紹介します。
辞書として渡します:
print("Total score for %(n)s is %(s)s" % {'n': name, 's': score})
新しいスタイルの文字列フォーマットもあり、読みやすくなるかもしれません。
新しいスタイルの文字列フォーマットを使用します。
print("Total score for {} is {}".format(name, score))
数字を使用した新しいスタイルの文字列書式設定を使用します (並べ替えや同じものを複数回印刷する場合に便利です)。
print("Total score for {0} is {1}".format(name, score))
明示的な名前で新しいスタイルの文字列フォーマットを使用します。
print("Total score for {n} is {s}".format(n=name, s=score))
文字列を連結します:
print("Total score for " + str(name) + " is " + str(score))
私の意見では、最も明らかなのは次の 2 つです。
値をパラメータとして渡すだけです:
print("Total score for", name, "is", score)
print
上記の例のようにスペースが自動的に挿入されないようにするには、sep
パラメータを変更します。print("Total score for ", name, " is ", score, sep='')
print
Python 2 を使用している場合、 はPython 2 の関数ではないため、最後の 2 つは使用できません。ただし、次の動作を からインポートできます__future__
。from __future__ import print_function
f
Python 3.6 の新しい -string フォーマットを使用します。print(f'Total score for {name} is {score}')