Python no todos los argumentos convertidos durante el formato de cadena

Python no todos los argumentos convertidos durante el formato de cadena

El formato de cadena es la técnica de crear/hacer una cadena reemplazando a los marcadores de posición en una cadena con valores. Mientras realiza operaciones en cadenas, ocurren varios errores en Python. El mensaje de error "No todos los argumentos convertidos durante el formato de cadena"Aparece mientras intenta formatear las cadenas dadas usando la sintaxis inapropiada o usando el operador de módulo"De %"Con cuerdas y números.

En este blog de Python, exploraremos diferentes causas y soluciones al error especificado. Comencemos con los siguientes contenidos:

    • ¿Cuáles son las causas de este error??
    • Soluciones para corregir este error

¿Cuáles son las causas del error "no todos los argumentos convertidos durante el error de formato de cadena"??

El error discutido puede ocurrir debido a varias razones, incluidas las siguientes:

Causa 1: Uso de una sintaxis incorrecta

Este error puede ocurrir cuando la sintaxis incorrecta del operador de módulos "De %"Se usa para invocar y agregar los valores inicializados. Echemos un vistazo al siguiente ejemplo:

nombre = "Joseph"
edad = 23
output = "Mi nombre es y tengo años"%(nombre, edad)
Imprimir (salida)


En el código anterior, la sintaxis incorrecta del operador de módulos "De %"Se usa para colocar el valor de"nombre" y "edad"Dentro de la cadena sin usar los marcadores de posición apropiados, yo.mi., "%s" y "%d" etc. contra los tipos de datos.

Producción


Como resultado, la limitación declarada se enfrenta debido a los propietarios faltantes contra los valores invocados.

Causa 2: Uso del operador de módulo "%" con entero y cadena

La otra causa de este error puede ser utilizando el operador discutido con entero y cadena. Por ejemplo, echemos un vistazo al siguiente código de ejemplo:

nombre = "45"
edad = 23
salida = nombre % edad
Imprimir (salida)


En el fragmento de código anterior, el operador de módulos "De %"Se coloca entre la variable de cadena"nombre"Y variable entera"edad"Para devolver el resto correspondiente.

Producción


Dado que ambos valores comprenden tipos de datos conflictivos, el cálculo no se puede realizar y, por lo tanto, se enfrenta el error establecido.

Soluciones para corregir el error de "no todos los argumentos convertidos durante el formato de cadena"

Las siguientes son algunas soluciones para arreglar la limitación establecida en Python:

Solución 1: corrija la sintaxis colocando a los marcadores de posición apropiados

Para corregir este error, necesitamos invocar los valores de la cadena de inicializar colocando el marcador de posición correspondiente, I.mi., "%s", como sigue:

nombre = "John"
edad = "30"
output = "Mi nombre es %s y tengo %s de años" %(nombre, edad)
Imprimir (salida)


En el código anterior, el marcador de posición "%s"Se usa en lugar de los frenos rizados""Invocar los valores de cadena inicializados adecuadamente.

Producción


Como se ve, se accede y se adhieren a los valores de cadena inicializados en consecuencia.

Solución 2: usando el método "format ()"

El "formato()"Formatos de método el valor dado/especificado según el especificador de formato. Este método también se puede utilizar para formatear los valores invocados directamente sin usar los marcadores de posición.

Sintaxis

formato (val, formato)


En la sintaxis anterior:

    • "Val"Corresponde al valor que debe formatearse.
    • "formato"Se refiere a la especificación de cómo se debe formatear el valor.

Ejemplo

Vamos a ver el siguiente código:

nombre = "John"
edad = "30"
output = "Mi nombre es y tengo años".formato (nombre, edad)
Imprimir (salida)


En el bloque de código anterior, el "formato()El método se utiliza para contener los valores de cadena invocados como sus argumentos, devolviendo y agregando los valores adecuadamente.

Producción


Esta salida implica que los valores de cadena se recuperan adecuadamente.

Solución 3: Castizar el tipo de datos

El error también se puede resolver al convertir el "cadena" a "En t Tipo de datos a través de Casting, como sigue:

nombre = "45"
edad = 23
salida = int (nombre) % ​​edad
Imprimir (salida)


En el código anterior, el valor de cadena inicializado se emite a "En t"Y luego el operador de Modulo"De %"Se aplica entre el valor predeterminado y el entero fundido para recuperar el resto correspondiente.

Producción


Como se ve, el resto se busca apropiadamente.mi., 45/23 = "22".

Conclusión

El "No todos los argumentos convertidos durante el formato de cadena"El error se puede resolver corrigiendo la sintaxis del operador de módulos"De %"A través de la colocación de marcadores de posición apropiados, o utilizando el"formato()"Método en lugar del operador %, o convertir el"cadena" en "En t"A través de la fundición del tipo de datos. Esta guía de Python discutió múltiples razones y soluciones para resolver la limitación discutida.