From 6c2c6b10760ae786621438cfd60dfd326d48be41 Mon Sep 17 00:00:00 2001 From: "Stanislav (Stanley) Modrak" <44023416+smith558@users.noreply.github.com> Date: Sun, 28 Aug 2022 18:45:40 +0100 Subject: [PATCH] Clarify casting and move bool() method section --- python.html.markdown | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/python.html.markdown b/python.html.markdown index e8c7110a..0b115c4e 100644 --- a/python.html.markdown +++ b/python.html.markdown @@ -85,12 +85,24 @@ False - 5 # => -5 2 == True # => False -5 != False # => True +# None, 0, and empty strings/lists/dicts/tuples/sets all evaluate to False. +# All other values are True +bool(0) # => False +bool("") # => False +bool([]) # => False +bool({}) # => False +bool(()) # => False +bool(set()) # => False +bool(4) # => True +bool(-6) # => True + # Using boolean logical operators on ints casts them to booleans for evaluation, but their non-cast value is returned # Don't mix up with bool(ints) and bitwise and/or (&,|) bool(0) # => False -bool(4) # => True -bool(-6) # => True +bool(2) # => True 0 and 2 # => 0 +bool(-5) # => True +bool(2) # => True -5 or 0 # => -5 # Equality is ==