I searched for understanding about the all function in Python, and I found this, according to here:
allwill returnTrueonly when all the elements are Truthy.
But when I work with this function it's acting differently:
'?' == True   # False
'!' == True   # False
all(['?','!']) # True
Why is it that when all elements in input are False it returns True? Did I misunderstand its functionality or is there an explanation?
only when all the elements are Truthy.
Truthy != True.
all essentially checks whether bool(something) is True (for all somethings in the iterable).
>>> "?" == True
False
>>> "?" == False # it's not False either
False
>>> bool("?")
True
                        '?' and '!' are both truthy since they are non-empty Strings.
There's a difference between True and "truthy". Truthy means that when coerced, it can evaluate to True. That's different from it being == to True though. 
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With