ホームページ >バックエンド開発 >Python チュートリアル >Python 3.x で `print(value, end=' ')` が SyntaxError を引き起こすのはなぜですか?

Python 3.x で `print(value, end=' ')` が SyntaxError を引き起こすのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 14:45:02988ブラウズ

Why Does `print(value, end=' ')` Cause a SyntaxError in Python 3.x?

キーワード引数 end='

Python 3.x では、print を呼び出すときに end=' ' 構文を使用する場合のトラブルシューティング() は SyntaxError を引き起こす可能性があります。これは、コードを Python 2.x からアップグレードするときによく発生します。この場合、print は依然として関数ではなくステートメントとして扱われます。

説明

Python 2.x 、 print は構文的にステートメントであるため、キーワード引数を受け入れません。その結果、print("foo" % bar, end=" ") は無効な構文であり、SyntaxError が発生します。

ただし、Python 3.x では、print が関数にアップグレードされ、次のことが可能になります。 end を含むキーワード引数を受け取ります。これは、print("foo" % bar, end=" ") が Python 3.x で有効かつ期待される構文であることを意味します。

解決策

Python 3.x で SyntaxError が発生する場合は、正しい構文 print(value, end=) を使用していることを確認してください。 ").

コードの移植性を確保するには、Python 2.x で次のイディオムを使用することを検討してください。

print("foo" % bar, )  # Add a trailing comma to prevent a line break
sys.stdout.write("foo" % bar + " ")  # Use sys.stdout for direct output manipulation

あるいは、可能であれば、Python 2.x で print_function の将来のインポートを有効にすることもできます。 Python 3.x の印刷構文を使用するには:

from __future__ import print_function

以上がPython 3.x で `print(value, end=' ')` が SyntaxError を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。