Corriger TypeError : Not Enough Arguments for Format String Error en Python

Manav Narula 14 avril 2022
Corriger TypeError : Not Enough Arguments for Format String Error en Python

En Python, nous pouvons formater des chaînes pour obtenir le résultat final dans le style et le format souhaités.

Le formatage de chaîne implique également l’utilisation de valeurs d’espace réservé avec le signe %. Cette méthode est une technique très courante pour fournir des valeurs manquantes en Python avec des valeurs temporaires.

Cependant, si l’on n’y prend pas garde, cela peut conduire à l’erreur not enough arguments for format string, une TypeError. Nous discuterons de cette erreur et de ses solutions dans ce tutoriel.

Voir le code suivant.

a = 2
b = 4
c = 6
s = "First %s Second %s Third %s" % a, b, c
print(s)

Production :

TypeError: not enough arguments for format string

Nous obtenons cette erreur car nous ne fournissons qu’un seul signe % dans la chaîne pour donner les valeurs, et il y a trois valeurs. Le code ci-dessus ne considère que la première valeur (a). Nous devons les passer dans un tuple pour résoudre ce problème.

Par example:

a = 2
b = 4
c = 6
s = "First %s Second %s Third %s" % (a, b, c)
print(s)

Production :

First 2 Second 4 Third 6

Une autre façon de surmonter cette erreur est d’utiliser la fonction format(). La méthode % est obsolète pour le formatage des chaînes.

On peut préciser les valeurs dans la fonction format() et mentionner les valeurs manquantes à l’aide d’accolades {}.

Voir le code ci-dessous.

a = 2
b = 4
c = 6
s = "First {0} Second {1} Third {2}".format(a, b, c)
print(s)

Production :

First 2 Second 4 Third 6

En Python 3.x et supérieur, nous pouvons utiliser les fstrings pour fournir des chaînes d’espace réservé. Cette méthode est une méthode plus récente et plus efficace pour formater les chaînes.

Nous pouvons fournir les valeurs entre accolades comme dans l’exemple précédent.

Voir l’exemple suivant.

a = 2
b = 4
c = 6
s = f"First {a} Second {b} Third {c}"
print(s)

Production :

First 2 Second 4 Third 6
Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Python String