У меня есть две логические переменные в моей программе, которая называется after и late. Просто чтобы убедиться, что каждая переменная получила правильное значение, я тестировал каждый из них с помощью следующей команды:Почему выражение false и true оценивается как true? (python 2.7)
print(after)
print(late)
Программа печатает
false
true
, как и ожидалось. Тем не менее, когда я запускаю следующий код:
if after and late:
print('true and true')
elif after and (not late):
print('true and false')
elif (not after) and late:
print('false and true')
elif (not after) and (not late):
print('false and false')
программа печатает
'true and true'
, что означает, что выражение после и поздно оценивает к истине. Почему это оценивается как истинное, хотя true и false должны давать ложные значения?
Возможно, строки 'after' и' late', возможно? – nneonneo
a lil больше фрагментов было бы полезно – Codeek
Они определенно не логические. Проверьте корпус. Булевы Python являются заглавными. – dyoo