Merge pull request #1898 from yihongang/python_truthiness

add more details on truthiness
This commit is contained in:
Adam Bard 2015-10-31 19:02:26 +08:00
commit 15c9543ebc

View File

@ -63,7 +63,7 @@ allow you to write Python 3 code that will run on Python 2, so check out the Pyt
# to carry out normal division with just one '/'. # to carry out normal division with just one '/'.
from __future__ import division from __future__ import division
11/4 # => 2.75 ...normal division 11/4 # => 2.75 ...normal division
11//4 # => 2 ...floored division 11//4 # => 2 ...floored division
# Modulo operation # Modulo operation
7 % 3 # => 1 7 % 3 # => 1
@ -148,8 +148,16 @@ None is None # => True
# very useful when dealing with primitive values, but is # very useful when dealing with primitive values, but is
# very useful when dealing with objects. # very useful when dealing with objects.
# None, 0, and empty strings/lists all evaluate to False. # Any object can be used in a Boolean context.
# All other values are True # The following values are considered falsey:
# - None
# - zero of any numeric type (e.g., 0, 0L, 0.0, 0j)
# - empty sequences (e.g., '', (), [])
# - empty containers (e.g., {}, set())
# - instances of user-defined classes meeting certain conditions
# see: https://docs.python.org/2/reference/datamodel.html#object.__nonzero__
#
# All other values are truthy (using the bool() function on them returns True).
bool(0) # => False bool(0) # => False
bool("") # => False bool("") # => False