TypeError: 'int' 型の引数は反復可能ではありません。
プログラムを実行するとこのエラーが発生するのですが、原因がわかりません。エラーは "if 1 not in c:" という行で発生しています。
コード
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
知りたいのは、このエラーを修正し、プログラムを正しく実行する方法です。
ありがとうございました。
6
3
ここで
c
はインデックスであり、検索するリストではありません。整数を反復処理することができないので、このようなエラーが発生します。1
が
c` にあるかどうかをチェックしようとしているが、これは意味がない。c
は行番号ですから、
int`です。 つまり、数値は他の数値の中に「入る」ことはできません。if 1 != c:
- これは
cが
1` という値を持っていないかどうかをテストするものです。