'int' object is not iterable Python
Выдает ошибку
i = 0
for i in ui.tableWidget.rowCount():
print(ui.tableWidget.item(i,0))
Не могу понять что не так? ui.tableWidget.rowCount() возвращает int
Ответы (2 шт):
после in должно быть то, по чему можно итерироваться. Например, диапазон. Это может быть так
for i in range(0,ui.tableWidget.rowCount()):
и теперь i пробежит весь диапазон.
В 2 питоне лучше было писать xrange, хотя range также работает (но не так эффективно).
Объяснение ошибки
'int' object is not iterable
ui.tableWidget.rowCount() - это число строк вашей таблицы. Скажем, 9.
Тогда из вашей команды
for i in ui.tableWidget.rowCount():
получится
for i in 9:
9 не является ни списком, ни кортежей, ни словарем, по котором бы было возможно проходить (итерировать) - это целое число, т.е. объект типа int (от «integer», целое число).
Теперь к вашей программе:
- Первая строка вашей программы (
i = 0) не нужна. Чтобы не надо было всегда писать долгое
ui.tableWidget, вы можете присвоить тому имя, напримерtable = ui.tableWidget.Вы хотите итерировать через порядковые номера строк, значит от
0доrowCount() - 1. Дла этого фунцияrange().
Итак, всё может выглядеть так:
table = ui.tableWidget
for i in range(table.rowCount()):
print(table.item(i, 0))