TypeError: argumen tipe 'int' tidak dapat diiterasi

Saya mendapatkan kesalahan ini ketika saya menjalankan program saya dan saya tidak tahu mengapa. Kesalahan terjadi pada baris yang mengatakan "if 1 not in c:"

Kode:

matrix = [
    [0, 0, 0, 5, 0, 0, 0, 0, 6],
    [8, 0, 0, 0, 4, 7, 5, 0, 3],
    [0, 5, 0, 0, 0, 3, 0, 0, 0],
    [0, 7, 0, 8, 0, 0, 0, 0, 9],
    [0, 0, 0, 0, 1, 0, 0, 0, 0],
    [9, 0, 0, 0, 0, 4, 0, 2, 0],
    [0, 0, 0, 9, 0, 0, 0, 1, 0],
    [7, 0, 8, 3, 2, 0, 0, 0, 5],
    [3, 0, 0, 0, 0, 8, 0, 0, 0],
    ]
a = 1
while a:
     try:
        for c, row in enumerate(matrix):
            if 0 in row:
                print("Found 0 on row,", c, "index", row.index(0))
                if 1 not in c:
                    print ("t")
    except ValueError:
         break

Apa yang ingin saya ketahui adalah bagaimana saya dapat memperbaiki kesalahan ini agar tidak terjadi dan program tetap berjalan dengan benar.

Terima kasih sebelumnya!

Larutan

di sini c adalah indeks, bukan daftar yang Anda cari. Karena Anda tidak bisa mengiterasi melalui bilangan bulat, Anda mendapatkan error itu.



>>> myList = ['a','b','c','d']
>>> for c,element in enumerate(myList):
...     print c,element
... 
0 a
1 b
2 c
3 d

Anda mencoba memeriksa apakah 1 ada di c, yang tidak masuk akal

Komentar (0)

c adalah nomor baris, jadi itu adalah int. Jadi angka tidak bisa berada di dalam angka lain.

Komentar (7)

Saya pikir Anda menginginkan if 1 != c: - yang menguji jika c tidak memiliki nilai 1.

Komentar (1)