KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This method searches for the first group of word characters (ie: [a-zA-Z0-9_] ), returning the first matched group or None in case of failure. def test(str): m = re.search(r'(\w+)', str) if m: return m.group(1) return None The same function can be rewritten as: def test2(str): m = re.search(r'(\w+)', str) return m and m.group(1) This works the same, and is documented behavior; as this page clearly states: The expression x and y first evaluates x ; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned. However, being a boolean operator (it even says so on the manual), I expected and to return a boolean. As a result, I was astonished when I found out (how) this worked. What are other use cases of this, and/or what is the rationale for this rather unintuitive implementation?
Tags (comma-separated)
Save Edits
Cancel