0

私のプログラムには次のような状態があります。

if vals[k]==vals[i] and i!=k: 

ifステートメントに続くコードは、vals [k] == 1、vals [i] == 1、i == 2、およびk == 0の場合、これらの値が条件を通過することを期待したときにスキップされます。Python構文の理解に根本的な問題がありますか?

これは割り当て用なので、不正行為で告発された場合に備えて、あまり多くのコードを含めたくありませんが、もう少し説明します。

for k in range(i-i%4,i+4-i%4):
    print vals[i]
    print vals[k]
    print i
    print k
    if vals[k]==vals[i] and i!=k: 
        isMatch = True
        print 'rowmatch'
        break

(printステートメントは無視してください。デバッグを支援するだけです)

そして、これがデバッガーが返したものの一部のコピーです:

サンプルデバッガ出力

[編集]RussellBorogoveは正しかったので、intとstringを比較していました。今はかなり馬鹿げています、あなたの助けに感謝します!

4

1 に答える 1

2

の直前に次の行を追加してif、ご連絡ください。

print "vals[k] = %s vals[i] = %s i = %s k = %s"%(vals[k],vals[i],i,k)

おそらく、互換性のないタイプが に混在している可能性がありますvals。試す:

for val in vals:
    print "%s %s"%(val.__class__,val)
于 2013-03-15T23:54:35.253 に答える