"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo evitar \"TypeError: no todos los argumentos se convierten\" cuando se utiliza el formato de marcador de posición en Python

Cómo evitar \"TypeError: no todos los argumentos se convierten\" cuando se utiliza el formato de marcador de posición en Python

Publicado el 2024-11-03
Navegar:217

How to Avoid \

Error de tipo al sustituir el marcador de posición con formato %

Al intentar sustituir un marcador de posición como {0} usando el formato %, los desarrolladores pueden encontrar lo siguiente error: "TypeError: no todos los argumentos se convirtieron durante el formateo de cadenas". Este error se debe a un formato inadecuado, específicamente debido a una confusión entre el formato % de estilo antiguo y el formato {} de estilo nuevo.

El formato % de estilo antiguo emplea marcadores de posición como %d para el formato, como se ejemplifica a continuación :

'It will cost $%d dollars.' % 95

Sin embargo, cuando se utilizan múltiples valores, se deben proporcionar como una tupla:

"'%s' is longer than '%s'" % (name1, name2)

Por otro lado, el formato {} de nuevo estilo emplea marcadores de posición como {} y el método .format. Es fundamental evitar mezclar estos dos estilos. Si la cadena de plantilla contiene {} marcadores de posición, se debe usar .format, no %.

# Correct:
'It will cost ${0} dollars.'.format(95)
"'{0}' is longer than '{1}'".format(name1, name2)

# Incorrect (Do not mix % and {}):
'It will cost ${0} dollars.' % 95
"'%0' is longer than '%1'" % (name1, name2)

Al seguir estas pautas de formato, los desarrolladores pueden resolver el error y el formato "TypeError: no todos los argumentos se convierten durante el formateo de cadenas" sus cadenas correctamente.

Declaración de liberación Este artículo se reimprime en: 1729221315 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3