В 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 не нужен / не использует точки с запятой для завершения строк. Итак, если они не делают ничего позитивного.
Соответствующее место в документации Python: https://docs.python.org/2/library/stdtypes.html#truth-value-testing
правдоподобие "объекта определяется либо методом __nonzero__()
, либо если это не является результатом метода __len__()
. Поскольку ваш элемент не имеет дочерних элементов, т. Е. Его длина равна 0, считается False
значением истины.
это то, что я получаю с вашим кодом ...
>>> 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__
и рассказывают вам, как вы должны его проверить ...
XML и HTML не отображают чисто на родные структуры данных python. Нет однозначного метода, чтобы решить, должен ли элемент-элемент равняться True или False.
Если вы хотите узнать, не удалось ли вам получить элемент, сравните его с None
. Например ::
element is None
Если вы хотите узнать, имеет ли ваш элемент какие-либо дочерние узлы, используйте len
. Например :: / g2]
len(element) > 0