如何使用__future__ import print_function

UHM*_*MIS 121 python vim loops python-import python-2.7

我是使用python进行编程的新手,我正在尝试使用分隔符打印并结束但它仍然给我一个语法错误我正在使用python 2.7我从vim编辑器编码,这是我的代码:

from __future__ import print_function
import sys, os, time

for x in range(0,10):
    print x, sep=' ', end=''
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

请帮忙.并使用我的代码,告诉我应该在哪里使用__CODE__ 谢谢

Cyp*_*ase 189

首先,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)
Run Code Online (Sandbox Code Playgroud)

__future__语句需要靠近文件的顶部,因为它们会改变语言的基本内容,因此编译器需要从头开始了解它们.从文档:

未来的语句在编译时被特别识别和处理:核心构造的语义变化通常通过生成不同的代码来实现.甚至可能是新功能引入了新的不兼容语法(例如新的保留字),在这种情况下,编译器可能需要以不同方式解析模块.直到运行时才能推迟这样的决定.

该文档还提到在__future__语句之前可以做的唯一事情是模块文档字符串,注释,空行和其他未来语句.

  • 正如文档(https://docs.python.org/2/reference/simple_stmts.html#future)所述,***不是*第一行*.未来的声明必须出现在顶部附近模块.在future语句之前可以出现的唯一行是:模块docstring(如果有),注释,空行和其他将来的语句. (14认同)
  • @UHMIS,执行 `end=' '`。 (2认同)