Почему оператор "&" не работает в этих двух выражениях?
# First, type bool
bool(re.search(r'\d', "4foo"))
>True
# Second, type bool
len("4foo")==4
>True
type(len("4foo")==4)))
>bool
При использовании обоих с оператором "&", как это, я получаю False
, что не является правильным:
# Expected output as this example:
True&True
>True
# The "wrong" output:
bool(re.search(r'\d', "4foo"))& (len("4foo")==4)
>False
После часа сумасшествия я «решил» это, используя то, что я никогда не ожидал, что это «проблема»:
# The "correct" output(transforming a bool type into a bool type something that works but seems stupid...):
bool(re.search(r'\d', "4foo"))&bool(len("4foo")==4)
>True
Решение
bool(re.search(r'\d', "4foo")) and len("4foo")==4