tipos de operandos no admitidos python

Funciones y métodos de Python

Los valores enteros no se pueden restar de los valores de cadena y viceversa. Esto se debe a que las cadenas y los enteros son tipos de datos separados. Si intenta restar una cadena de un número entero, recibirá un error como & ldquo; TypeError: tipos de operandos no admitidos para -: & lsquo; str & rsquo; y & lsquo; int & rsquo; & rdquo ;.

En esta guía, hablamos sobre la importancia de este error y por qué se plantea. Analizamos un ejemplo para ayudarlo a descubrir cómo resolver este error en su código.




TypeError: tipos de operandos no admitidos para -: & lsquo; str & rsquo; y & lsquo; int & rsquo;

A diferencia de otros lenguajes de programación, la sintaxis de Python está fuertemente tipada. Una consecuencia de esto es que tienes que cambiar los tipos de objetos, como cadenas y números enteros, si quieres tratarlos como un tipo diferente de datos.

Cuando intentas restar un string para un entero o viceversa, Python no sabe qué hacer. Esto se debe a que no puede restar valores de cadena.

De manera similar, no puede agregar una cadena a un número entero o dividir una cadena por un número entero. Todas estas operaciones devuelven un & ldquo; tipo (s) de operando no admitido & rdquo; error.




Un escenario de ejemplo

Vamos a crear una aplicación de gastos que rastree cuánto dinero le quedará a alguien en su presupuesto después de realizar una compra. Esta aplicación le pide al usuario que ingrese el valor de cada compra que realiza. Esto se restará de la cantidad total que un usuario tiene en su presupuesto.

Para comenzar, pida a un usuario que establezca un presupuesto utilizando la entrada () método :

 budget = int (input ("¿Cuál es su presupuesto para este mes ? ")) 

Hemos convertido este valor en un entero usando el método int () . A continuación, le pedimos a un usuario que proporcione algunos detalles sobre su compra. Les preguntamos qué compraron y cuánto les costó la compra:

El 81% de los participantes afirmaron que se sentían más seguros sobre sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.

El graduado promedio de bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

A continuación, restamos el valor de & ldquo; precio & rdquo; de & ldquo; presupuesto & rdquo ;. Esto nos dice cuánto le queda a un usuario en su presupuesto.


Hacemos esto usando el operador de resta (-):

 money_left = budget - price print ("Le quedan $ {} en su presupuesto.". Format (money_left)) 

Ejecute nuestro código para ver si nuestro programa funciona:

 ¿Cuál es su presupuesto para este mes? 400 ¿Qué compró? Soporte de monitor ¿Cuánto fue esta compra? 35 Rastreo (última llamada más reciente): Archivo "main.py", línea 5, en & lt; module & gt; money_left = budget - price TypeError: tipos de operandos no admitidos para -: 'int' y' str' 

We & rsquo; Le dijimos a nuestro programa que nuestro presupuesto mensual es de $ 400. Acabamos de comprar un soporte de monitor que cuesta $ 35. Nuestro programa no calcula nuestro nuevo presupuesto. Solucionemos este error.




La solución

Para así Si tenemos este error, convertimos el valor de & ldquo; precio & rdquo; a una cadena.

De forma predeterminada, input () devuelve una cadena. Cambiamos el valor de & ldquo; presupuesto & rdquo; para ser un número entero anteriormente en nuestro código. Sin embargo, no cambiamos el valor de "precio". Esto da como resultado que nuestro código reste un número entero de una cadena, lo cual no es posible.

Python no puede convertir automáticamente una cadena en un número entero porque Python tiene un tipo estático.

Solucionamos este error reemplazando el & ldquo; precio & rdquo; declaración con este código:

 price = int (input ("¿Cuánto fue esta compra?")) 

Hemos rodeado la declaración input () con int () . Esto hace que el valor almacenado en el & ldquo; precio & rdquo;  variable un número entero. Esto convierte el valor que un usuario inserta en nuestro programa en un número entero. Ejecute nuestro código con esta línea de código revisada:

 ¿Cuál es su presupuesto para este mes? 400 ¿Qué compraste? Soporte para monitor ¿Cuánto fue esta compra? 35 Le quedan $ 365 en su presupuesto. 

Nuestro código se ejecuta correctamente. Nuestro código resta 35 de 400. Nuestro programa luego imprime la cantidad de dinero que nos queda en nuestro presupuesto en la consola.





Errores similares

Hay varios & ldquo; tipos de operandos no admitidos & rdquo; errores en Python.

Estos errores significan lo mismo: estás intentando realizar una operación matemática en una cadena y un valor numérico. Dado que las cadenas no admiten operaciones matemáticas, encontrará un error.

Por ejemplo, verá este error si intenta agregar una cadena y un número entero:

 TypeError: tipos de operandos no admitidos para +:' int' y 'str' 

De manera similar, verá este error si intente encontrar el resto de una cadena y un entero:

 TypeError: tipos de operandos no admitidos para% : 'int' y' str' 

Para resolver este error en todos los casos, asegúrese de convertir cualquier valor de cadena a un número entero antes de usarlo en su código. Puede hacer esto usando el método int () .




Conclusión

El & ldquo; TypeError: tipos de operandos no admitidos para -: & lsquo; str & rsquo ; y & lsquo; int & rsquo; & rdquo; se genera un error cuando intenta restar una cadena de un número entero.

Este error se resuelve convirtiendo todas las cadenas en números enteros usando el método int () antes de realizar una operación matemática.

¡Ahora estás listo para resolver este error común de Python como un desarrollador profesional!

"Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó emparejarme con un bootcamp. Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y objetivos en la vida. "

Venus, ingeniero de software en Rockbot





tipos de operandos no admitidos python: StackOverflow Questions

Tutorials