Python literal inválido para int con base 10

Funciones y métodos de Python

Python es bueno para convertir valores a diferentes tipos de datos. Puede convertir cadenas en enteros, enteros en cadenas, flotantes en enteros, por nombrar algunos ejemplos. Hay una conversión que a Python no le gusta: cambiar un flotante estructurado como una cadena a un número entero.

En este tutorial, discutimos ValueError: literal inválido para int () con error de base 10 y por qué se genera. Analizamos un ejemplo de este error para ayudarlo a comprender cómo puede solucionarlo en su código.




El problema: ValueError: literal inválido para int () con base 10

Let & rsquo ; s comience leyendo nuestro mensaje de error:

 ValueError: literal no válido para int () con base 10 

Los mensajes de error tienen dos partes. La primera parte nos dice el tipo de error al que nos enfrentamos. Se genera un ValueError cuando hay un problema con el valor almacenado en un objeto en particular.

Nuestro mensaje de error nos dice que hay un literal no válido para un número entero en base 10. Esto significa que el valor que han pasado a través de un método int () no se pueden convertir.

En Python, puede pasar números formateados como cadenas en métodos float () y int () .

El El método int () no le permite pasar un flotante representado como una cadena . Si intenta convertir cualquier valor de cadena que no esté formateado como un entero, se genera este error.

Esto significa que no puede convertir un número de punto flotante en una cadena en un entero. Además, no puede convertir letras a números enteros (a menos que utilice letras con un significado especial, como & ldquo; inf & rdquo;).

El 81% de los participantes afirmó que se sentía más seguro acerca de sus perspectivas laborales en tecnología después de asistiendo a un campo de entrenamiento. Asigne a un bootcamp hoy mismo.

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

Aquí, creamos un programa que calcula si una cafetería tiene suficiente café en stock para servir a sus clientes durante un día. Nuestro campo de entrada debe aceptar números decimales porque las bolsas pueden estar medio llenas, un cuarto de su capacidad, etc.


Convertimos el valor que un usuario inserta en un número entero porque no necesitamos ser precisos hasta el nivel de medias bolsas y cuartos de bolsa.

Comencemos pidiendo al usuario que inserte cuántas bolsas de café quedan usando una declaración input () :

 coffee_bags = input (" Ingrese cuántas bolsas de café quedan: ") 

A continuación, convertimos este valor a un número entero. Luego, usamos una & ldquo; if & rdquo; statement para verificar si la cafetería tiene suficiente café. Si la cafetería tiene más de 10 bolsas, tienen suficiente para el día. De lo contrario, no.

Escribamos esto en nuestro programa:

 coffee_bags_as_int = int (coffee_bags) if Coffee_bags_as_int & gt; 10: print ("Tienes suficientes bolsas de café.") Else: print ("No tienes suficientes bolsas de café.") 

Ejecutemos nuestro código y veamos qué sucede:

 Ingrese cuántas bolsas de café quedan: 7.4 Traceback (última llamada más reciente): Archivo "main.py ", línea 3, en & lt; módulo & gt; coffee_bags_as_int = int (coffee_bags) ValueError: literal no válido para int () con base 10: '7.4' 

Cuando intentamos escribir un número decimal en nuestro programa, se devuelve un error.

Este error se debe a que intentamos convertir & ldquo; 7.4: en un número entero. El valor & ldquo; 7,4 & rdquo; tiene el formato de una cadena. Python no puede convertir un número de punto flotante en una cadena en un número entero.

Para solucionar este problema, necesitamos convertir el valor que inserta un usuario en un número de punto flotante. Luego, podemos convertirlo en un número entero.

Podemos hacer esto usando las declaraciones float () y int () . La función int () devuelve un número entero. La función float () devuelve una representación de punto flotante de un flotante.

 coffee_bags_as_int = int (float (coffee_bags)) 

Nuestro código primero convierte el valor de & ldquo; coffee_bags & rdquo; a un flotador. A continuación, convierte ese valor en un número entero. Intentemos ejecutar nuestro código nuevamente:

 Ingrese cuántas bolsas de café quedan: 7.4 No lo hace tenga suficientes bolsas de café. 

Nuestro código funciona correctamente. Ahora que hemos convertido & ldquo; coffee_bags & rdquo; a un flotante, nuestro programa puede convertir el valor que un usuario inserta en un número entero.





Conclusión

El Python ValueError: un literal inválido para int () con un error de base 10 se genera cuando intenta convertir un valor de cadena que no está formateado como un entero.

Para resolver este problema, puede usar el método float () para convertir un número de punto flotante en una cadena en un entero. Luego, puede usar int () para convertir su número en un entero.

Si esto no funciona, asegúrese de que el valor de una cadena no contenga letras. Las cadenas con letras no se pueden convertir en números enteros a menos que esas letras tengan un significado especial en Python.

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





Python literal inválido para int con base 10: StackOverflow Questions

Tutorials