Complex Conditionals (and, or, and not)¶

We can also use and and or to join several logical expressions together as shown in the table below. An or joining two expressions means that if either of the expressions is true, the whole expression is true. An and used to join two expressions is only true if both expressions are true. A not negates the logical value that follows it. If it was true, then a not changes the result to false. If it was false, the not changes the result to true.

Expression

Meaning

(a < b) or (c < d)

The whole expression is true if a is less than b or c is less than d.

(a < b) and (c < d)

The whole expression is true if a is less than b AND ALSO c is less than d.

not a < b

Only true if a is actually greater than or equal to b. The logical expression not a < b is the same as a >= b.

A common use of and is to check that a value is in a range between a minimum value and a maximum value. For example, if you have asked a person to pick a number between 1 and 10 you can check for this using the following.

A common use of or is to check if either one of two conditions are true. For example, a parent has told a teen that she can go out if she has cleaned her room or finished her homework. If either of these is true she can go out. In Python a value of 0 means false and any non-zero value is true, but 1 is often used for true.