¿Cuál es el significado de literal inválido para int() con base = ‘ ‘?

ValueError se encuentra cuando pasamos un tipo de argumento inapropiado. Aquí, estamos hablando del ValueError causado por pasar un argumento incorrecto a la int()función. Cuando pasamos una representación de string de un flotante o cualquier representación de string que no sea int, da un ValueError.

Ejemplo 1: ValueError con base 10.

# ValueError caused by conversion of 
# String representation of float to int
int('23.5')

Producción :

ValueError: invalid literal for int() with base 10: '23.5'

Uno puede pensar que al ejecutar el código anterior, la parte decimal ‘.5’ debe truncarse y el código debe dar como resultado 23 solamente. Pero el punto a tener en cuenta es que la función int() utiliza el sistema numérico decimal como base para la conversión, es decir. base = 10 es el valor predeterminado para la conversión. Y en el sistema de numeración decimal, tenemos números del 0 al 9 excluyendo el decimal (.) y otros caracteres (alfabetos y caracteres especiales). Por lo tanto, int()con base = 10 solo puede convertir una representación de string de int y no flotantes o caracteres.

Primero podemos convertir la representación de string de float en float usando float()la función y luego convertirla en un número entero usando int().

print(int(float('23.5')))

Producción :

23

Ejemplo 2: Pasar alfabetos en int().

int('abc')

Producción :

invalid literal for int() with base 10: 'abc'

Los caracteres a, b, c, d, e y f están presentes en el sistema base =16 y, por lo tanto, solo estos caracteres junto con los dígitos 0 a 9 se pueden convertir de su representación de string a números enteros en forma hexadecimal. Tenemos que pasar un parámetro basecon valor 16.

print(int('abc', base = 16))

Producción :

2748

Publicación traducida automáticamente

Artículo escrito por shivanshmishra4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *