このコードを試すと:
if Verbose:
print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')
無効な構文であるSyntaxError
というクレームが届きます。end=' '
なぜこのようなことが起こるのでしょうか?
見るPython で「SyntaxError: 'print' の呼び出しに括弧がありません」とはどういう意味ですか?逆の問題の場合。
見るPython 2.7 ではなぜ print 内の括弧は任意なのでしょうか?print
Python 2 でを文として扱う場合の一般的な結果については、 を参照してください。
ベストアンサー1
Python 3.x を使用していますか?print
はまだステートメントであるため、構文は Python 2.x では使用できません。
print("foo" % bar, end=" ")
Python 2.xでは以下と同じである
print ("foo" % bar, end=" ")
または
print "foo" % bar, end=" "
つまり、タプルを引数として print を呼び出すことになります。
これは明らかに悪い構文です (リテラルはキーワード引数を取りません)。Python 3.x ではprint
実際の関数なので、キーワード引数も取ります。
Python 2.x での正しい慣用句は次のとおりend=" "
です。
print "foo" % bar,
(最後のカンマに注意してください。これにより、行末は改行ではなくスペースで終わります)
出力をさらに制御したい場合は、sys.stdout
直接使用することを検討してください。これにより、出力に特別な魔法が実行されることはありません。
もちろん、Python 2.x の比較的最近のバージョン (2.5 にはあるはずですが、2.4 についてはわかりません) では、__future__
モジュールを使用してスクリプト ファイルで有効にすることができます。
from __future__ import print_function
unicode_literals
および他の便利な機能 (など)についても同様ですwith_statement
。ただし、これは Python 2.x の非常に古いバージョン (つまり、機能が導入される前に作成されたバージョン) では動作しません。