This behaviour confuses me. Could someone explain to me why is this happening like this? I expected them to both behave the same. Answer The expression x or y evaluates to x if x is true, or y if x is false. Note that “true” and “false” in the above sentence are talking about “truthiness”, not the fixed values True