Python布尔比较逻辑错误

Python布尔比较逻辑错误,python,boolean-logic,Python,Boolean Logic,我正在使用Python执行一些数据验证和清理,在执行一些布尔比较时遇到了一个逻辑错误。我有一个需要清理的查找表,所以我比较范围值以确认值集之间没有重叠。所有列表值都已从CSV文件中输入 守则: print >>f2, "Filter logic II for " + myKey[0] + " " + myKey[1] + " " + myKey[2] + ":" print >>f2, "outerRow[3] " + outerRow[3] + " >= inn

我正在使用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"
print>>f2,“用于“+myKey[0]+”“+myKey[1]+”“+myKey[2]+”的过滤逻辑II:”

打印>>f2,“outerRow[3]”+outerRow[3]+“>=innerRow[3]”+innerRow[3]+“和outerRow[3]+”=innerRow[3]“+innerRow[3]+”和outerRow[4]“+outerRow[4]+”尝试将数据转换为
int
。这来自交互式Python shell:

>>> "100" <= "79"
True
>>> 100 <= 79
False
>>> int("100") <= int("79")
False

>>“100”>>100>>int(“100”)如果示例更小,则更容易理解…为什么第一个示例是正确的?0小于80。79也是。这是因为他使用字符串进行测试。给出的答案是正确的。是的。仅仅因为它不是强类型并不意味着它没有类型。我知道python有类型,但它没有强制转换。我认为正确的单词是w应该是“转换”()有些东西可能不是很明显,但是Cask和Stand之间的差别很大,Casic意味着给同一个对象分配不同的类型,而转换创建一个完全不同的对象,你看到了现在的不同吗?C++中也有可能在创建时创建一个新的对象。.现在我很好奇::-)
*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*
>>> "100" <= "79"
True
>>> 100 <= 79
False
>>> int("100") <= int("79")
False