web-dev-qa-db-ja.com

Pythonで複数の引数を表示する

これは私のコードの一部です。

print("Total score for %s is %s  ", name, score)

しかし、私はそれをプリントアウトしてほしい:

"(名前)の合計スコアは(スコア)"

ここでnameはリスト内の変数、scoreは整数です。それが全く助けになるのであれば、これはPython 3.3です。

266
user1985351

これを行うには多くの方法があります。 %-フォーマットを使用して現在のコードを修正するには、Tupleを渡す必要があります。

  1. タプルとして渡します。

    print("Total score for %s is %s" % (name, score))
    

単一の要素を持つTupleは('this',)のように見えます。

これを行う他のいくつかの一般的な方法は次のとおりです。

  1. 辞書として渡します。

    print("Total score for %(n)s is %(s)s" % {'n': name, 's': score})
    

また、新しいスタイルの文字列フォーマットもあります。

  1. 新しいスタイルの文字列フォーマットを使う:

    print("Total score for {} is {}".format(name, score))
    
  2. 新しいスタイルの文字列フォーマットを数字で使う(同じものを並べ替えたり、同じものを複数回印刷するのに便利です):

    print("Total score for {0} is {1}".format(name, score))
    
  3. 明示的な名前で新しいスタイルの文字列フォーマットを使う:

    print("Total score for {n} is {s}".format(n=name, s=score))
    
  4. 文字列を連結する:

    print("Total score for " + str(name) + " is " + str(score))
    

最も明確な2つ、私の意見では:

  1. 値をパラメータとして渡すだけです。

    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
    
  2. Python 3.6では新しいf-文字列フォーマットを使用します。

    print(f'Total score for {name} is {score}')
    
472
Blender

印刷する方法はたくさんあります。

別の例を見てみましょう。

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}')
49
Vikas Gupta

使用:.format()

print("Total score for {0} is {1}".format(name, score))

または

// Recommended, more readable code

print("Total score for {n} is {s}".format(n=name, s=score))

または

print("Total score for" + name + " is " + score)

または

`print("Total score for %s is %d" % (name, score))`
23
Gavriel Cohen

Python 3.6では、f-stringはずっときれいになりました。

以前のバージョンでは:

print("Total score for %s is %s. " % (name, score))

Python 3.6の場合:

print(f'Total score for {name} is {score}.')

しましょう。

より効率的でエレガントです。

19
Abhishek

単純にしておくと、私は個人的には文字列の連結が好きです。

print("Total score for " + name + " is " + score)

Python 2.7と3.Xの両方で動作します。

注:scoreがintの場合は、strに変換してください。 - ):

print("Total score for " + name + " is " + str(score))
14
Paolo Rovelli

ちょうど試して:

print("Total score for", name, "is", score)
12
airsickbachus3

これに従ってください

idiot_type = "the biggest idiot"
year = 22
print("I have been {} for {} years ".format(idiot_type, years))

または

idiot_type = "the biggest idiot"
year = 22
print("I have been %s for %s years."% (idiot_type, year))

そして他のすべてを忘れないでください、さもなければ脳はすべてのフォーマットをマッピングすることができないでしょう。

9
TheExorcist

scoreが数値の場合、

print("Total score for %s is %d" % (name, score))

スコアが文字列の場合、

print("Total score for %s is %s" % (name, score))

Scoreが数値の場合は%d、文字列の場合は%s、scoreがfloatの場合は%fです。

5
Supercolbat
print("Total score for %s is %s  " % (name, score))

%s%dまたは%fに置き換えることができます

5
user6014455

これが私がすることです:

print("Total score for " + name + " is " + score)

forの前後およびisの前後には、必ずスペースを入れてください。

3
user5700251

f-stringを使用してください。

print(f'Total score for {name} is {score}')

または

.formatを使用してください。

print("Total score for {} is {}".format(name, score))
3
iNet