Python Pas tous les arguments convertis lors du formatage des chaînes

Python Pas tous les arguments convertis lors du formatage des chaînes

Le formatage des chaînes est la technique de création / de fabrication d'une chaîne en remplaçant les espaces réservés dans une chaîne par des valeurs. Tout en effectuant des opérations sur des chaînes, diverses erreurs se produisent à Python. Le message d'erreur "Tous les arguments ne sont pas convertis lors du formatage des chaînes"Apparaît en essayant de formater les chaînes données en utilisant la syntaxe inappropriée, ou en utilisant l'opérateur de modulo"%”Avec des chaînes et des nombres.

Dans ce blog Python, nous explorerons différentes causes et solutions à l'erreur spécifiée donnée. Commençons par le contenu suivant:

    • Quelles sont les causes de cette erreur?
    • Solutions pour corriger cette erreur

Quelles sont les causes de l'erreur «Tous les arguments ne convertis pas pendant la mise en forme de chaîne»?

L'erreur discutée peut se produire pour plusieurs raisons, notamment ce qui suit:

Cause 1: Utilisation de syntaxe incorrecte

Cette erreur peut se produire lorsque la syntaxe incorrecte de l'opérateur modulo "%”Est ​​utilisé pour invoquer et ajouter les valeurs initialisées. Jetons un coup d'œil à l'exemple ci-dessous:

name = "Joseph"
Âge = 23
output = "Mon nom est et je suis âgé des années"% (nom, âge)
Imprimer (sortie)


Dans le code ci-dessus, la syntaxe incorrecte de l'opérateur modulo "%"Est utilisé pour placer la valeur de"nom" et "âge«À l'intérieur de la chaîne sans utiliser les espaces réservés appropriés, je.e., "% s" et "%d" etc. Contre les types de données.

Sortir


En conséquence, la limitation indiquée est confrontée en raison des espaces réservés manquants contre les valeurs invoquées.

Cause 2: Utilisation de l'opérateur modulo «%» avec entier et une chaîne

L'autre cause de cette erreur peut être en utilisant l'opérateur discuté avec entier et une chaîne. Par exemple, jetons un coup d'œil à l'exemple de code ci-dessous:

name = "45"
Âge = 23
sortie = nom% âge
Imprimer (sortie)


Dans l'extrait de code ci-dessus, l'opérateur modulo «%"Est placé entre la variable de chaîne"nom"Et variable entière"âge”Pour retourner le reste correspondant.

Sortir


Étant donné que les deux valeurs comprennent des types de données contradictoires, le calcul ne peut pas être effectué et donc l'erreur indiquée est face.

Solutions pour corriger l'erreur «tous les arguments convertis pendant le formatage des chaînes»

Voici quelques solutions pour fixer la limitation déclarée en Python:

Solution 1: Corrigez la syntaxe en plaçant les espaces réservés appropriés

Pour corriger cette erreur, nous devons invoquer les valeurs de chaîne initialisées en plaçant l'espace place correspondant, je.e., "% s", comme suit:

name = "John"
Âge = "30"
output = "Mon nom est% s et je suis âgé de% s"% (nom, âge)
Imprimer (sortie)


Dans le code ci-dessus, l'espace réservé «% s"Est utilisé à la place des accolades bouclées"«Pour invoquer les valeurs de chaîne initialisées de manière appropriée.

Sortir


Comme on le voit, les valeurs de chaîne initialisées sont accessibles et annexées en conséquence.

Solution 2: en utilisant la méthode «format ()»

Le "format()”Formats de la méthode La valeur donnée / spécifiée en fonction du spécificateur de format. Cette méthode peut également être utilisée pour formater directement les valeurs invoquées sans utiliser les espaces réservés.

Syntaxe

format (val, format)


Dans la syntaxe ci-dessus:

    • "val»Correspond à la valeur qui doit être formatée.
    • "format»Fait référence à la spécification de la façon dont la valeur doit être formatée.

Exemple

Présentation du code suivant:

name = "John"
Âge = "30"
output = "Mon nom est et je suis ans".format (nom, âge)
Imprimer (sortie)


Dans le bloc de code ci-dessus, le «format()«La méthode est utilisée pour contenir les valeurs de chaîne invoquées comme arguments, renvoyant ainsi et ajoutant les valeurs de manière appropriée.

Sortir


Cette sortie implique que les valeurs de chaîne sont récupérées de manière appropriée.

Solution 3: Casser le type de données

L'erreur peut également être résolue en convertissant le «chaîne" pour "int type de données via le casting, comme suit:

name = "45"
Âge = 23
sortie = int (nom)% âge
Imprimer (sortie)


Dans le code ci-dessus, la valeur de chaîne initialisée est coulée à «int"Et puis l'opérateur modulo"%"Est appliqué entre la valeur par défaut et l'entier coulé pour récupérer le reste correspondant.

Sortir


Comme on le voit, le reste est récupéré de manière appropriée.e., 45/23 = "22".

Conclusion

Le "Tous les arguments ne sont pas convertis lors du formatage des chaînes«L'erreur peut être résolue en corrigeant la syntaxe de l'opérateur modulo«%«Via le placement des espaces réservés appropriés, ou en utilisant le«format()«Méthode au lieu de l'opérateur%, ou convertissant le«chaîne" dans "int”Via le casting du type de données. Ce guide Python a discuté de multiples raisons et solutions pour résoudre la limitation discutée.