Оператор not в Python |
Оператор not в Python на первый взгляд иногда ведёт себя нелогично. Например,
print([] == False) # выведет False, но:
if not False:
print('not False') # выведет not False
if not []:
print('not []') # выведет not []
То есть пустой список ведёт себя точно так же, как и False, при этом не равняясь ему.
Дело, оказывается, вот в чём. not возвращает True, если ему передано булево значение False, или любое другое, имеющее длину == 0, или же сам 0 (неважно в каком виде: int, float или complex). То есть "пустые" или нулевые значения в конструкции if not ... будут вести себя как False. Может быть удобно для проверки, было ли в ходе выполнения программы, например, в список или словарь добавлено какое-то значение, или нет.
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |