私はpythonを使ったプログラミングの初心者で、区切り記号と終わりを付けて印刷しようとしていますが、それでも構文エラーが発生します。python 2.7を使用しています。vimエディタからコーディングしています。
import sys, os, time
from __future__ import print_function
for x in range(0,10):
print x, sep=' ', end=''
time.sleep(1)
助けてください。そして私のコードを使って、実際にどこでfrom __future__ import print_function
を使うべきかを見せてくれてありがとう
まず第一に、from __future__ import print_function
はあなたのスクリプトのコードの最初の行である必要があります(以下に述べるいくつかの例外は別として)。第二に、他の答えが言ったように、あなたは今関数としてprint
を使わなければなりません。それがfrom __future__ import print_function
の要点です。 Python 3からprint
関数をPython 2.6+に移行するため。
from __future__ import print_function
import sys, os, time
for x in range(0,10):
print(x, sep=' ', end='') # No need for sep here, but okay :)
time.sleep(1)
__future__
ステートメントは、言語に関する基本的な事柄を変更するため、ファイルの先頭近くに配置する必要があります。そのため、コンパイラは最初からステートメントについて知る必要があります。ドキュメントから:
将来のステートメントは、コンパイル時に特別に認識され、扱われます。コア構造のセマンティクスに対する変更は、異なるコードを生成することによって実装されることがよくあります。新しい機能が新しい互換性のない構文(新しい予約語など)を導入する場合もあります。その場合、コンパイラはモジュールを異なる方法で解析する必要があります。このような決定は実行時まで延期することはできません。
ドキュメントはまた__future__
ステートメントの前に来ることができる唯一のものがモジュールdocstring、コメント、空白行、および他の将来のステートメントであると述べています。