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!