Question comment utiliser depuis __future__ import print_function [fermé]


Je suis nouveau en programmation avec Python, et j'essaie d'imprimer avec un séparateur et une fin mais cela me donne toujours une erreur de syntaxe J'utilise python 2.7 Je code depuis l'éditeur de vim et voici mon code:

import sys, os, time
from __future__ import print_function

for x in range(0,10):
    print x, sep=' ', end=''
    time.sleep(1)

s'il vous plaît, aidez. Et en utilisant mon code, montre-moi où je devrais utiliser le from __future__ import print_function Je vous remercie


68
2017-08-16 07:07


origine


Réponses:


Tout d'abord, from __future__ import print_function doit être la première ligne de code de votre script (à part quelques exceptions mentionnées ci-dessous). Deuxièmement, comme d’autres réponses l’ont dit, vous devez utiliser print en tant que fonction maintenant. C'est tout l'intérêt de from __future__ import print_function; apporter le print  fonction de Python 3 dans 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__ Les instructions doivent être en haut du fichier car elles modifient les éléments fondamentaux du langage, et le compilateur doit donc les connaître dès le début. De La documentation:

Une déclaration future est reconnue et traitée spécialement à la compilation   time: les changements de la sémantique des constructions de base sont souvent   implémenté en générant un code différent. Il se peut même que   une nouvelle fonctionnalité introduit une nouvelle syntaxe incompatible (comme une nouvelle   mot réservé), auquel cas le compilateur devra peut-être analyser le   module différemment. De telles décisions ne peuvent être repoussées à l'exécution.

La documentation mentionne également que les seules choses qui peuvent précéder un __future__ Les instructions sont la docstring du module, les commentaires, les lignes vides et d’autres instructions futures.


118
2017-08-16 07:11