list - Python in operator is not working -
when run code, nothing shows up. example call ind(1, [1, 2, 3]), don't integer 13.
def ind(e, l): if (e in l == true): print('13') else: print('12')
operator precedence. if put ( , ) around e in l work:
def ind(e, l): if ((e in l) == true): print('13') else: print('12') ind(1, [1, 2, 3]) but testing true can done (and usual idiom) done without true
def ind(e, l): if (e in l): print('13') else: print('12') ind(1, [1, 2, 3]) edit: bonus can use true , false keep/nullify things. example:
def ind(e, l): print('13' * (e in l) or '12') ind(1, [1, 2, 3]) ind(4, [1, 2, 3]) and ouputs:
13 12 because e in l has first been evaluated true , 13 * true 13. 2nd part of boolean expression not looked up.
but when calling function 4, following happens:
`13` * (e in l) or '12` -> `13` * false or '12' -> '' or '12' -> 12 becase , empty string evaluates false , therefore 2nd part of or boolean expression returned.
Comments
Post a Comment