Maison >développement back-end >Tutoriel Python >Comment puis-je échapper aux signes de pourcentage dans le formatage de chaîne Python pour éviter « TypeError » ?
L'utilisation d'opérateurs de pourcentage (%) dans les chaînes Python peut souvent conduire à une ambiguïté, en particulier lorsque vous travaillez avec le formatage de chaînes. Le conflit survient en raison de l'utilisation variable des caractères % en Python : en tant qu'opérateur modulo, espace réservé au formatage de chaîne et en tant que caractère simple. Pour garder le contrôle sur la gestion du pourcentage de caractères, l'échappement sélectif devient nécessaire.
Considérez le code suivant :
test = "have it break." selectiveEscape = "Print percent % in sentence and not %s" % test
Lors de l'impression de l'échappement sélectif, vous pouvez vous attendre à voir :
Print percent % in sentence and not have it break.
Cependant, en raison du double pour cent dans l'espace réservé de formatage (%s), l'interpréteur l'interprète comme un opérateur modulo et renvoie une TypeError indiquant la nécessité d'un nombre au lieu d'un argument de chaîne.
Pour résoudre ce problème, vous devez échapper sélectivement les caractères de pourcentage que vous souhaitez traiter comme des littéraux. Ceci peut être réalisé en utilisant des signes de double pourcentage (%%), qui garantissent que le premier caractère de pourcentage est interprété comme une séquence d'échappement plutôt que comme un espace réservé de formatage.
Le code corrigé :
test = "have it break." selectiveEscape = "Print percent %% in sentence and not %s" % test
Avec ces ajustements, la sortie s'affichera désormais comme vous le souhaitez :
Print percent % in sentence and not have it break.
Grâce à cette technique, vous pouvez échapper sélectivement les caractères de pourcentage dans les chaînes Python, en vous assurant qu'ils sont interprétés comme caractères littéraux plutôt que de formater des espaces réservés.
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!