Я столкнулся с странным поведением python, сравнивающим строку с True/False.python - сравните строку с boolean
Я думал, что питон будет печатать в следующем:
if "Test" == True:
print("Hello1")
, но это не так. Итак, я написал несколько тестовых примеров, и я не понимаю некоторых из них.
if "Test" == True:
print("Hello1")
if "Test" == False:
print("Hello2")
#This I understand
if bool("Test") == True:
print("Hello3")
#This I understand too
if bool("") == False:
print("Hello4")
if "Test":
print("Hello5")
Выход
>> Hello3
>> Hello4
>> Hello5
Так что я не понимаю:
- Если hello1 не печатается, почему не hello2 либо?
- Почему Hello5 печатается, является ли бросок для bool («Test») неявным?
Если вы улучшите свой ответ, чтобы скрыть сравнение объектов, это на самом деле лучше, чем на user762353. Anwser должен всегда стоять сам по себе. – Altoyyr
обновлен для автономной работы –
@ M.T Первые четыре сравнения: * не * сравнение объектов, а значений. Для сравнения объектов (или, другими словами, идентификаторов) будет '' Test 'is True' not '" Test "== True'. Я думаю, что это то, что вы имеете в виду, но ваша формулировка неоднозначна. Просьба уточнить ваш ответ для будущих пользователей. – eestrada