Есть ли разница между «== False» и «is not» при проверке пустой строки?

Я прочитал в другом месте stackoverflow, что самый элегантный способ проверить пустую строку в Python (например, предположим, что это строка, называемая response ):

 if not response: # do some stuff 

Причина состоит в том, что строки могут оценивать логические объекты.

Поэтому мой вопрос заключается в том, что приведенный ниже код говорит то же самое?

 if response == False: # do some stuff 

  • переменная длина% s с оператором% в python
  • необходимо преобразовать UTC (aws ec2) в PST в python
  • Python элегантная обратная функция int (строка, база)
  • Я продолжаю получать эту ошибку для моей простой программы python: «TypeError: объект« float »не может быть интерпретирован как целое число»
  • Метод класса вызова из другого класса
  • Использование функции компаратора для сортировки
  • Получение имени и расширения загруженного файла с помощью python (движок Google)
  • Создание dict из списка ключей, кортежей значений при сохранении дубликатов ключей
  • 2 Solutions collect form web for “Есть ли разница между «== False» и «is not» при проверке пустой строки?”

    Как уже упоминалось, есть разница.

    not response проверяется, если bool(response) == False или failing, если len(response) == 0 поэтому лучше всего проверить, что что-то пустое, None , 0 или False . См. Документацию python о том, что считается «Falsy» .

    Другой вариант просто проверяет, response == False ли response == False и это только в том случае, если и только если response is False . Но пустая строка is not False !

    Есть ли разница? Да: один работает, а другой нет.

    if response == False – это только true, если фактическое значение response False . Для пустой строки это не так.

    if not response , с другой стороны, проверяет, является ли response ложным; то есть это одно из значений, которое Python принимает как false в булевом контексте, который включает в себя None, False, пустую строку, пустой список и т. д. Это эквивалентно, if bool(response) == False .

    Python - лучший язык программирования в мире.