Python 2では私が使った:
print "a=%d,b=%d" % (f(x,n),g(x,n))
私はもう試した:
print("a=%d,b=%d") % (f(x,n),g(x,n))
Python 2では、print
はステートメントを導入するキーワードでした。
print "Hi"
Python3では、print
は呼び出すことができる関数です。
print ("Hi")
どちらのバージョンでも、%
は、左側に文字列、右側に値または値のタプルまたはマッピングオブジェクト(dict
など)を必要とする演算子です。
だから、あなたの行は次のようになるはずです。
print("a=%d,b=%d" % (f(x,n),g(x,n)))
また、Python 3以降では、{}
-style形式の代わりに%
-style形式を使用することをお勧めします。
print('a={:d}, b={:d}'.format(f(x,n),g(x,n)))
Python 3.6ではさらに別の文字列フォーマットパラダイムが導入されました: f-strings 。
print(f'a={f(x,n):d}, b={g(x,n):d}')
最も推奨される方法はformat
メソッドを使うことです。詳しくはこちら をご覧ください
a, b = 1, 2
print("a={0},b={1}".format(a, b))
O'ReillyのPython Cookbook からの単純なprintf()関数。
import sys
def printf(format, *args):
sys.stdout.write(format % args)
出力例
i = 7
pi = 3.14159265359
printf("hi there, i=%d, pi=%.2f\n", i, pi)
# hi there, i=7, pi=3.14
簡単な例:
print("foo %d, bar %d" % (1,2))
もっと簡単なものです。
def printf(format, *values):
print(format % values )
その後:
printf("Hello, this is my name %s and my age %d", "Martin", 20)
%
はprint(...)
の括弧の外側にあるため、変数をprint
呼び出しのresultに挿入しようとしています。 print(...)
はNone
を返すので、これはうまくいきません。そして、あなたがすでにあなたのテンプレートを印刷したことがあることは、私たちが住んでいる宇宙の法則によって禁止されていることもあります。
%
とそのオペランドを含めて、印刷したいものはすべて、insideprint(...)
呼び出しである必要があります。これにより、文字列を印刷する前に作成することができます。
print( "a=%d,b=%d" % (f(x,n), g(x,n)) )
明確にするために、いくつか余分なスペースを追加しました(ただし、これらは必要ではなく、一般的には良いスタイルとは見なされません)。
print("Name={}, balance={}".format(var-name, var-balance))
その他の単語printfがpythonに存在しない...びっくりしました!最高のコードは
def printf(format, *args):
sys.stdout.write(format % args)
この形式のため、印刷できません。\ nその他すべてそれがprintが悪いオペレータだからです。また、特別な形式で引数を書く必要があります。上記の機能に不利益はありません。これはprintf関数の標準的な通常の形式です。