これは私のコードのほんの一部です:
print("Total score for %s is %s ", name, score)
しかし、私はそれを印刷して欲しい:
「(名前)の合計スコアは(スコア)です」
ここで、name
はリスト内の変数で、score
は整数です。それがまったく役立つ場合、これはPython 3.3です。
これは私のコードのほんの一部です:
print("Total score for %s is %s ", name, score)
しかし、私はそれを印刷して欲しい:
「(名前)の合計スコアは(スコア)です」
ここで、name
はリスト内の変数で、score
は整数です。それがまったく役立つ場合、これはPython 3.3です。
回答:
これを行うには多くの方法があります。%
-formatting を使用して現在のコードを修正するには、タプルを渡す必要があります。
タプルとして渡します:
print("Total score for %s is %s" % (name, score))
単一の要素を持つタプルはのようになり('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='')
Python 2を使用してprint
いる場合、はPython 2の関数ではないため、最後の2つは使用できません。ただし、次の場所からこの動作をインポートできます__future__
。
from __future__ import print_function
f
Python 3.6で新しい-string形式を使用します。
print(f'Total score for {name} is {score}')
print("Total score for", name, "is", score)
.format()
は、古いものよりも読みやすくすることを好み% (tuple)
ます。ただし、%
補間が速いことを示すテストを見たことがあります。print('xxx', a, 'yyy', b)
また、簡単な例の罰金です。また.format_map()
、引数としてディクショナリを使用して学習することをお勧めし'ssss {key1} xxx {key2}'
ます。テンプレートからテキストを生成するのに便利です。古いものもありstring_template % dictionary
ます。しかし、テンプレートはそれほどきれいに見えません'ssss %(key1)s xxx %(key2)s'
。
print(f"Total score for {name} is {score}")
明示的な関数呼び出しで(限りとname
し、score
明らかに範囲内にあります)。
それを印刷する方法はたくさんあります。
別の例を見てみましょう。
a = 10
b = 20
c = a + b
#Normal string concatenation
print("sum of", a , "and" , b , "is" , c)
#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c))
# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))
#New style string formatting
print("sum of {} and {} is {}".format(a,b,c))
#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))
EDIT :
#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')
print("sum of {0} and {1} is {2}".format(a,b,c))
やり過ぎですprint("sum of {} and {} is {}".format(a,b,c))
。順序を変更したくない場合は省略できます。
print("Total score for %s is %s " % (name, score))
%s
%d
またはで置き換えることができます%f
これが私がすることです:
print("Total score for " + name + " is " + score)
for
前後にスペースを入れてくださいis
。
print("Total score for "+str(name)"+ is "+str(score))