Почему оба утверждения оцениваются в False? [Дубликат]

В Python 3.x, raw_input был переименован в input, а Python 2.x input удален.

Это означает, что так же, как raw_input, input в Python 3.x всегда возвращает строковый объект.

Чтобы устранить проблему, вам нужно явно вставить эти вводы в целые числа, поместив их в int :

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Кроме того, Python не нужен / не использует точки с запятой для завершения строк. Итак, если они не делают ничего позитивного.

3
задан Gill Bates 9 July 2014 в 19:58
поделиться

3 ответа

Соответствующее место в документации Python: https://docs.python.org/2/library/stdtypes.html#truth-value-testing

правдоподобие "объекта определяется либо методом __nonzero__(), либо если это не является результатом метода __len__(). Поскольку ваш элемент не имеет дочерних элементов, т. Е. Его длина равна 0, считается False значением истины.

4
ответ дан BlackJack 22 August 2018 в 21:03
поделиться

это то, что я получаю с вашим кодом ...

>>> print(bool(e))
__main__:1: FutureWarning: The behavior of this method will change in future ve
sions. Use specific 'len(elem)' or 'elem is not None' test instead.
False
>>> e
<Element span at 0x2db85a0>
>>>

кажется довольно понятным, что они перегружают метод __bool__ и рассказывают вам, как вы должны его проверить ...

0
ответ дан Joran Beasley 22 August 2018 в 21:03
поделиться

XML и HTML не отображают чисто на родные структуры данных python. Нет однозначного метода, чтобы решить, должен ли элемент-элемент равняться True или False.

Если вы хотите узнать, не удалось ли вам получить элемент, сравните его с None. Например ::

element is None

Если вы хотите узнать, имеет ли ваш элемент какие-либо дочерние узлы, используйте len. Например :: / g2]

len(element) > 0
2
ответ дан MattH 22 August 2018 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: