Solo los objetos iterables, como cadenas y listas, tienen una longitud. Si intenta calcular la longitud de un n√∫mero, encontrará el " TypeError: objeto de tipo " int " no tiene len () " error.
En esta guìa, discutimos qué significa este error y por qué se genera. Exploraremos un ejemplo de un fragmento de còdigo con este error para que podamos ver còmo solucionar el problema.
TypeError: object of type " int " no tiene len ()
El método len () devuelve la longitud de un objeto. Considere el siguiente programa:
Nuestro programa devuelve " 3 & rdquo ;. Esta es la longitud de nuestra lista de Python . La longitud de los " navegadores " El objeto se puede calcular porque contiene varios valores.
Las cadenas, tuplas y listas funcionan con el método len ()
porque son secuencias de valores. Los valores enteros no tienen longitud porque solo representan un valor. Los enteros almacenan un n√∫mero que no tiene una " longitud " como cualquier otro objeto iterable.
Un escenario de ejemplo
Vamos a escribir un programa que calcule cuántos clientes en una tienda de electrònica forman parte de un programa de club de fidelizaciòn. Comenzaremos con una lista de diccionarios en los que cada uno almacena informaciòn sobre nuestros clientes:
Nuestra lista de clientes contiene tres diccionarios . A continuaciòn, utilice un bucle for para calcular cuántos clientes son miembros del club de fidelizaciòn:
El 81% de los participantes dijeron que se sentìan más seguros sobre sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asòciese a un bootcamp hoy mismo.
El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.
Calculamos si un cliente es un miembro del club de lealtad al evaluar si el valor de " lealtad " en cada diccionario es igual a Verdadero.
A continuaciòn, imprima un mensaje en la consola que nos indique cuántos clientes son miembros de lealtad:
La declaraciòn .format () nos permite agregar valores a nuestra cadena en posiciones especìficas. En este caso, estamos agregando dos valores a nuestra cadena: la cantidad de clientes evaluados y cuántos clientes hay en el club de lealtad.
Ejecutemos nuestro còdigo para ver si funciona:
Nuestro còdigo deja de funcionar en la lìnea 13. Esta es la √∫ltima lìnea de nuestro programa.
La soluciòn
El mensaje de error nos dice que he intentado utilizar un método en un objeto que no es compatible con ese método. Hemos intentado calcular la longitud de un valor entero.
En nuestra declaraciòn impresa, le pedimos a nuestro programa que eval√∫e la longitud del " number_of_loyalty " valor:
Esto es innecesario porque " n√∫mero_de_lealtad " sì mismo rastrea cuántos miembros del club de lealtad hay. Para corregir este error, podemos eliminar el len ()
de alrededor del " number_of_loyalty " value para que podamos ver el valor entero que almacena:
Ejecutemos nuestro programa revisado:
Nuestro programa calcula que dos de los tres clientes de la tienda son miembros del club de fidelizaciòn. Este fue el resultado que esperábamos. Si miramos nuestra lista inicial, podemos ver que tanto " Lesley Jones " y "Benjamin Logan" son miembros de tarjetas de fidelizaciòn.