comp-think/2022-2023

Lecture "Programming languages", exercise 1

essepuntato opened this issue ยท 19 comments

What is the boolean value of not (not True or False and True) or False?

not (not True or False and True) or False = not (False or False) or false = True or False = True

not (not True or False and True) or False = not (False or False and True) or False = not (False and True) or False = not False or False = True or False = True

not (not True or False and True) or False -->
not (False or False and True) or False -->
not (False or False) or False -->
not ( False) or False -->
True or False -->
True

not ( not True or False and True) or False
= not ( False or False and True) or False
= not ( False and True) or False
= not ( False) or False
= True or False
= True

not (not True or False and True) or False= not (False or False) or False=not (False) or False= True or False=True

  • not (not True or False and True) or False
    -not (False or False and True) or False
    -not(False and True) or False
    -not(False) or False
    -True or False
    -True
  • not (not True or False and True) or False
  • not (False or False and True) or False
  • not (False or False) or False
  • not False or False
  • not False
  • True

not ( not True or False and True) or False
-not ( False or False and True) or False
-not ( False and True) or False
-not ( False) or False
-True or False
-True

not (not True or False and True) or False
= not (not True or False and True)
= not (False or False and True)
= not (False or False)
= not (False)
= True

not (not True or False and True) or False
= not (False or False and True) or False
= not (False or False) or False
= not False or False
= True or False
= True

True

True

not (not True or False and True) or False => 
not (False or False and True) or False => 
not(False or False) or False =>
True or False => 
True 

Not (not true or false and true) or false=
= Not (false or false) or false=
= not false or false=
= true or false=
= true

true

not (not True or False and True) or False
not (False or False and True) or False
not (False or False) or False
not False or False
True or False
True

True

1ex

Hi all,

Thanks for your answer. Please, remember that in Python, there is a particular precedence that is in place for solving the operators (including boolean operators). In particular, first not is executed, then and, and finally or. Thus, even if the final result of your computation may be correct (by chance), the actual substitution presented could have followed the wrong precedence order. Indeed, from the textbook:

Round brackets can be used for grouping boolean operations, e.g. (True and False) or False applies the and operation first, and the result is used as the first value of the or operation โ€“ given False as a result. If there are no brackets, the application order proceeds as follows. First, one must execute all the not operations. Then, one must perform all the and operations. Finally, one must assess the remaining or operations.

Detailed information about the precedence of all Python operators can be found in the official documentation.

Not (not True or False and True) or False
Not (False or False and True) or False
Not (False or False) or False
Not False or False
True or False = True

not (not True or False and True) or False
not (False or False and True) or False
not (False or False) or False
not (False) or False
True or False
True