Python布尔比较逻辑E

2024-09-24 10:29:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python执行一些数据验证和清理,我在执行的一些布尔比较中遇到了逻辑错误。我有一个需要清理的查找表,所以我比较范围值以确认值集之间没有重叠。所有列表值都是从CSV文件传入的。在

代码:

print >>f2, "Filter logic II for " + myKey[0] + " " + myKey[1] + " "  + myKey[2] + ":"
print >>f2, "outerRow[3] " + outerRow[3] + " >= innerRow[3] " + innerRow[3] + " and outerRow[3] " + outerRow[3] + " <= innerRow[4]" + innerRow[4] + " OR outerRow[4] " + outerRow[4] + " >= innerRow[3] " + innerRow[3] + " and outerRow[4] " + outerRow[4] + " <= innerRow[4]" + innerRow[4]
if ((outerRow[3] >= innerRow[3]) and (outerRow[3] <= innerRow[4])) or ((outerRow[4] >= innerRow[3]) and (outerRow[4] <= innerRow[4])):
    Test2 = True
    print >>f2, "Filter logic II = True"
else:
    Test1 = False
    print >>f2, "Filter logic II = False"

在第一次运行后产生结果:

^{pr2}$

但是在第二次运行之后,这个(意外的)结果:

*Filter logic II for 080570BD 1998 VA PRE:  
outerRow[3] 80 >= innerRow[3] 0 and outerRow[3] 80 <= innerRow[4]79 OR outerRow[4] 100 >= innerRow[3] 0 and outerRow[4] 100 <= innerRow[4]79  
Filter logic II = True*

我在逻辑比较中哪里出错了?我已经盯着这个有点太久了,我想看看我能不能从万维网得到帮助。在


Tags: orand数据falsetruefor逻辑filter