Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本Python条件_Python_If Statement_Conditional Statements - Fatal编程技术网

基本Python条件

基本Python条件,python,if-statement,conditional-statements,Python,If Statement,Conditional Statements,我的程序中有以下情况: 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

我的程序中有以下情况:

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是对的,我在比较整数和字符串。现在我觉得自己很笨,谢谢你的帮助

if
前面添加这一行,然后返回给我们:

print "vals[k] = %s vals[i] = %s i = %s k = %s"%(vals[k],vals[i],i,k)
可能您在
VAL
中混合了不兼容的类型。尝试:

for val in vals:
    print "%s %s"%(val.__class__,val)

对我有用。我认为我们需要更多的背景;背景中可能发生了一些你没有意识到的事情。你确定vals[k]==1、vals[i]==1、i==2和k==0吗?我删除了一些代码缩进,因此它更具可读性并嵌入了图像。作为将来的参考,图像对于显示此类信息并没有太大用处-所以下次-请随意复制并粘贴调试器输出作为代码块-这样-如果有人想复制/粘贴它等等,他们可以这样做。很高兴你找到了答案!谢谢,我是堆栈溢出的新手。它返回的VAL[k]=1 VAL[I]=1 I=2 k=0。也许我误解了调试器,但它似乎会跳回到for循环的开头。我最好的猜测是,
vals
中混合了整数和字符串
'1'==1
False
。与其使用
\uuuu class\uuuu
,不如使用
类型()
,或者更简单,使用
repr()
。或者不要显式调用
repr()
,而是使用
打印“%r”%(val)