Я выполняю некоторую проверку и очистку данных с помощью 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"
, который дает результаты после первого запуска:
*Filter logic II for XYZ KEY123 PRE:
outerRow[3] 0 >= innerRow[3] 80 and outerRow[3] 0 <= innerRow[4]100 OR outerRow[4] 79 >= innerRow[3] 80 and outerRow[4] 79 <= innerRow[4]100
Filter logic II = False*
Но это (неожиданный) результат после второго запуска:
*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*
Где я ошибаюсь в логическом сравнении?Я смотрел это слишком долго, подумал, что смогу получить помощь от всемирной сети.