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.
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
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 .
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 .
print(dir(int)) print(dir(list)) print(dir(dict))
Si observa las capturas de pantalla de salida, int no tiene el ** ''
'
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 apareció primero en .