Maison >développement back-end >Tutoriel Python >Pourquoi Python 2.x renvoie-t-il une « Erreur de syntaxe : parenthèses manquantes dans l'appel à « imprimer » » lors de l'utilisation de l'argument de mot-clé « fin » ?

Pourquoi Python 2.x renvoie-t-il une « Erreur de syntaxe : parenthèses manquantes dans l'appel à « imprimer » » lors de l'utilisation de l'argument de mot-clé « fin » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 00:23:02534parcourir

Why Does Python 2.x Throw a

Gestion de SyntaxError avec l'argument de mot-clé d'impression et de fin

Lors de la tentative d'exécution du code suivant :

if Verbose:
   print("Building internal Index for %d tile(s) ...", end=' ')

un une erreur se produit : "SyntaxError : parenthèses manquantes dans l'appel à 'print'". En effet, le mot clé argument end n'est pas pris en charge dans Python 2.x.

Comprendre la différence

Dans Python 2.x, print fonctionne sous forme d'instruction. Par conséquent, le code ci-dessus est interprété comme un appel à print enveloppé dans un tuple, l'argument final étant une chaîne littérale. Cependant, les littéraux de chaîne ne prennent pas en charge les arguments de mots-clés, ce qui entraîne l'erreur.

Solution pour Python 2.x

Dans Python 2.x, utilisez l'un des éléments suivants méthodes pour terminer une ligne par un espace :

  • Ajouter une virgule finale à l'impression déclaration :

    print "Building internal Index for %d tile(s) ...",
  • Utilisez le module sys.stdout directement pour un meilleur contrôle sur la sortie :

    import sys
    sys.stdout.write("Building internal Index for %d tile(s) ... ")

Activation de la fin Argument de mot clé dans Python 2.x

Dans les versions récentes de Python 2.x (2.5 et versions ultérieures), le module __future__ permet l'activation de la fonction print en tant que fonction en important print_function. Cependant, cette méthode peut ne pas être compatible avec les anciennes versions de Python 2.x.

Transition vers Python 3.x

Dans Python 3.x, print se comporte comme un fonction, permettant l’utilisation d’arguments de mots-clés tels que end. Par conséquent, le code original doit s'exécuter correctement dans Python 3.x sans aucune modification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn