tipos de operandos no admitidos 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 " TypeError: tipos de operandos no admitidos para -: " str " y " int " & 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 -: " str " y " int "

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 " tipo (s) de operando no admitido " 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 :

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 " precio " de " presupuesto & rdquo ;. Esto nos dice cuánto le queda a un usuario en su presupuesto.

Hacemos esto usando el operador de resta (-):

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

We " 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 " precio " a una cadena.

De forma predeterminada, input () devuelve una cadena. Cambiamos el valor de " presupuesto " 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 " precio " declaraciòn con este còdigo:

Hemos rodeado la declaraciòn input () con int () . Esto hace que el valor almacenado en el " precio " 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:

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 " tipos de operandos no admitidos " 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:

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