paint-brush
Cómo arreglar el Python TypeError: el objeto 'int' no es iterablepor@itsmycode
10,323 lecturas
10,323 lecturas

Cómo arreglar el Python TypeError: el objeto 'int' no es iterable

por Srinivas Ramakrishna2021/09/09
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow
ES

Demasiado Largo; Para Leer

Los objetos int no son iterables directamente ya que contienen un único valor entero y no contienen el método \*\*‘`__iter__`‘ \**. En lugar de usar int, intente usar list si tiene sentido, y se puede iterar usando for y while loop fácilmente. Intenta usar el método `range()` en el ciclo for, que eventualmente generará una lista de números secuenciales.
featured image - Cómo arreglar el Python TypeError: el objeto 'int' no es iterable
Srinivas Ramakrishna HackerNoon profile picture


¿Qué es exactamente TypeError: el objeto 'int' no es iterable?

El escenario más común en el que los desarrolladores obtienen este error es cuando intenta iterar un número usando un bucle for donde tiende a olvidarse de usar el método range() , que crea una secuencia de un número para iterar.


Considere el siguiente fragmento de código para aceptar las calificaciones de cada estudiante en una clase.


 students=int(input('Please enter the number of students in the class: ')) for number in students: math_grade=(input("Enter student's Maths grade: ")) science_grade=(input("Enter student's Science grade: ")) social_grade=(input("Enter student's Scoial grade: ")) # Output Please enter the number of students in the class: 5 Traceback (most recent call last): File "c:\Projects\Tryouts\listindexerror.py", line 3, in <module> for number in students: TypeError: 'int' object is not iterable


El código anterior es bastante sencillo, lee la entrada sobre el número total de estudiantes en una clase, y para cada estudiante, acepta las calificaciones de las materias.


La forma más fácil en que todos piensan aquí es usar for loop e iterar la cantidad de estudiantes para aceptar la calificación. Si ejecuta el código, Python arrojará un TypeError: 'int' object is not iterable .

¿Por qué Python arroja TypeError: el objeto 'int' no es iterable?


En Python, a diferencia de las listas, los números enteros no se pueden iterar directamente, ya que contienen un único valor entero y no contienen el método **' __iter__ ' **; es por eso que obtienes un TypeError .


Puede ejecutar el siguiente comando para verificar si un objeto es iterable o no.


 print(dir(int)) print(dir(list)) print(dir(dict))

TypeError: el objeto 'int' no es iterable

python typeerror int objeto no es iterable

Si observa las capturas de pantalla de salida, int no tiene el ** ' iterar ' ** método, mientras que list y dict tienen ** ' iterar ** método '

¿Cómo corregir TypeError: el objeto 'int' no es iterable?


Hay dos formas en que puede resolver el problema, y el primer enfoque es en lugar de usar int, intente usar una lista si tiene sentido, y se puede iterar usando bucles for y while fácilmente.


El segundo enfoque es: si aún desea iterar el objeto int, intente usar el método range() en el ciclo for, que eventualmente generará una lista de números secuenciales.


 students=int(input('Please enter the number of students in the class: ')) for number in range(students): math_grade=(input("Enter student's Maths grade: ")) science_grade=(input("Enter student's Science grade: ")) social_grade=(input("Enter student's Scoial grade: "))


La publicación Python TypeError: 'int' object is not iterable apareció primero en ItsMyCode .