0
try:
    for v in d.values():
        for item in v[1:]:
            if item != v[0]:
except ValueError:
    raise ValueError('this is inconsistent')

次の出力が得られます-

except ValueError:

^ IndentationError: インデントされたブロックが必要です

4

2 に答える 2

6

これがコード スニペット全体である場合、行の後にif item != v[0]:ステートメントはありません。そこに1つ置く必要があります。

代わりに例外を発生させたい場合はtry...except、そのコードの周りにブロックは必要ありません。あなたはそれを次のように組み立てます:

for v in d.values():
    for item in v[1:]:
        if item != v[0]:
            raise ValueError('this is inconsistent')
于 2012-07-28T17:21:42.943 に答える
1

エラーは、プログラムが if item != v[0]: の後にステートメントを予期しているために発生する可能性がありますが、何も検出されず、except ValueError: 行を右インデントにない次の行として処理しています。

于 2012-07-28T17:26:04.767 に答える