it-swarm.com.ru

как использовать из __future__ import print_function

Я новичок в программировании на 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 Спасибо

103
UHMIS

Прежде всего, from __future__ import print_function должен быть первой строкой кода в вашем скрипте (кроме некоторых исключений, упомянутых ниже). Во-вторых, как уже говорили другие ответы, вы должны использовать print как функцию сейчас. В этом весь смысл from __future__ import print_function; перенести функцию print из Python 3 в 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__, являются строка документа, комментарии, пустые строки и другие будущие операторы.

167
Cyphase