I disagree. An empty string is False. Any empty set is False. An empty dict is False. Basically, in Python emptiness implies falseness. This has practical benefits:
users = database.fetch_users()
if not users:
print("Didn't find anyone.")
and name = input()
if not name:
print("You didn't enter a name.")
Of course you could work around those like `if len(users) == 0` or `if not len(users)` or `if name != ""`, but each of those is uglier.`if not users` translates very nicely to English: "if there are not any users...". I'm glad Python defined `bool(list)` that way.