Print および End キーワード引数を使用した SyntaxError の処理
次のコードを実行しようとしたとき:
if Verbose: print("Building internal Index for %d tile(s) ...", end=' ')
anエラーが発生します:「SyntaxError: 'print' の呼び出しに括弧がありません」。これは、キーワード引数 end が Python 2.x ではサポートされていないためです。
違いを理解する
Python 2.x では、関数をステートメントとして出力します。したがって、上記のコードは、最後の引数が文字列リテラルである、タプルでラップされた print 呼び出しとして解釈されます。ただし、文字列リテラルはキーワード引数をサポートしていないため、エラーが発生します。
Python 2.x の解決策
Python 2.x では、次のいずれかを使用します。行をスペースで終了するメソッド:
print ステートメントに最後のカンマを追加します:
print "Building internal Index for %d tile(s) ...",
sys.stdout を使用します。モジュールを直接使用して出力をより詳細に制御します:
import sys sys.stdout.write("Building internal Index for %d tile(s) ... ")
Python 2.x での終了キーワード引数の有効化
最近のバージョンの Python 2 .x (2.5 以降) では、__future__ モジュールを使用して、print_function をインポートすることによって、関数として印刷関数をアクティブ化できます。ただし、このメソッドは古い Python 2.x バージョンと互換性がない可能性があります。
Python 3.x への移行
Python 3.x では、 print は関数を使用すると、end などのキーワード引数の使用が可能になります。したがって、元のコードは何も変更しなくても Python 3.x で正しく実行されるはずです。
以上が'end' キーワード引数を使用すると、Python 2.x で「SyntaxError: Missing brachess in call to 'print'」がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。