Arreglar TypeError: Not Enough Arguments for Format String en Python

Manav Narula 14 abril 2022
Arreglar TypeError: Not Enough Arguments for Format String en Python

En Python, podemos formatear cadenas para obtener el resultado final en nuestro estilo y formato deseados.

El formato de cadena también implica el uso de valores de marcador de posición con el signo %. Este método es una técnica muy común para proporcionar valores faltantes en Python con valores temporales.

Sin embargo, si uno no tiene cuidado, puede llevar al error not enough arguments for format string, un TypeError. Discutiremos este error y sus soluciones en este tutorial.

Consulte el siguiente código.

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

Producción :

TypeError: not enough arguments for format string

Obtenemos este error porque proporcionamos solo un signo % en la cadena para dar los valores, y hay tres valores. El código anterior solo considera el primer valor (a). Necesitamos pasarlos en una tupla para resolver esto.

Por ejemplo:

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

Producción :

First 2 Second 4 Third 6

Otra forma de superar este error es usando la función format(). El método % está desactualizado para formatear cadenas.

Podemos especificar los valores en la función format() y mencionar los valores faltantes usando llaves {}.

Vea el código a continuación.

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

Producción :

First 2 Second 4 Third 6

En Python 3.x y superior, podemos usar fstrings para proporcionar cadenas de marcadores de posición. Este método es una forma más nueva y eficiente de formatear cadenas.

Podemos proporcionar los valores entre llaves como se hizo en el ejemplo anterior.

Vea el siguiente ejemplo.

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

Producción :

First 2 Second 4 Third 6
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

Artículo relacionado - Python String