0

我的程序中有这种情况:

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

当我期望这些值通过条件时,当 vals[k]==1、vals[i]==1、i==2 和 k==0 时,if 语句后面的代码将被跳过。我对 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

(忽略打印语句,它们只是用于调试的笨拙辅助工具)

这是调试器返回的部分内容的副本:

示例调试器输出

[编辑] Russell Borogove 是对的,我将整数与字符串进行比较。现在感觉很笨,谢谢你的帮助!

4

1 回答 1

2

在 the 之前添加这一行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 回答