03 - Gaddis Python - Lecture - PPT - ch03
03 - Gaddis Python - Lecture - PPT - ch03
Fifth Edition
Chapter 3
Decision Structures and
Boolean Logic
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-1
Topics
• The if Statement
• The if-else Statement
• Comparing Strings
• Nested Decision Structures and the if-elif-else
Statement
• Logical Operators
• Boolean Variables
• Turtle Graphics: Determining the State of the Turtle
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-2
The if Statement (1 of 4)
• Control structure: logical design that controls order in
which set of statements execute
• Sequence structure: set of statements that execute in
the order they appear
• Decision structure: specific action(s) performed only if
a condition exists
– Also known as selection structure
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-3
The if Statement (2 of 4)
• In flowchart, diamond represents true/false condition
that must be tested
• Actions can be conditionally executed
– Performed only when a condition is true
• Single alternative decision structure: provides only
one alternative path of execution
– If condition is not true, exit the structure
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-4
The if Statement (3 of 4)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-5
The if Statement (4 of 4)
• Python syntax:
if condition:
Statement
Statement
• First line known as the if clause
– Includes the keyword if followed by condition
The condition can be true or false
When the if statement executes, the condition is tested,
and if it is true the block statements are executed.
otherwise, block statements are skipped
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-6
Boolean Expressions and Relational
Operators (1 of 5)
• Boolean expression: expression tested by if statement
to determine if it is true or false
– Example: a > b
true if a is greater than b; false otherwise
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-7
Boolean Expressions and Relational
Operators (2 of 5)
• >= and <= operators test more than one relationship
– It is enough for one of the relationships to exist for the
expression to be true
• == operator determines whether the two operands are
equal to one another
– Do not confuse with assignment operator (=)
• != operator determines whether the two operands are
not equal
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-8
Boolean Expressions and Relational
Operators (3 of 5)
Table 3-2 Boolean expressions using relational operators
Expression Meaning
x > y Is x greater than y?
x < y Is x less than y?
x >= y Is x greater than or equal to y?
x <= y Is x less than or equal to y?
x == y Is x equal to y?
x != y Is x not equal to y?
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3-9
Boolean Expressions and Relational
Operators (4 of 5)
• Using a Boolean expression with the > relational
operator
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 10
Boolean Expressions and Relational
Operators (5 of 5)
• Any relational operator can be used in a decision
block
– Example: if balance == 0
– Example: if payment != balance
• It is possible to have a block inside another block
– Example: if statement inside a function
– Statements in inner block must be indented with
respect to the outer block
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 11
The if-else Statement (1 of 3)
• Dual alternative decision structure: two possible paths
of execution
– One is taken if the condition is true, and the other if the
condition is false
– Syntax: if condition:
statements
else:
other statements
– if clause and else clause must be aligned
– Statements must be consistently indented
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 12
The if-else Statement (2 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 13
The if-else Statement (3 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 14
Comparing Strings (1 of 2)
• Strings can be compared using the == and !=
operators
• String comparisons are case sensitive
• Strings can be compared using >, <, >=, and <=
– Compared character by character based on the ASCII
values for each character
– If shorter word is substring of longer word, longer word
is greater than shorter word
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 15
Comparing Strings (2 of 2)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 16
Nested Decision Structures and the
if-elif-else Statement (1 of 3)
• A decision structure can be nested inside another
decision structure
– Commonly needed in programs
– Example:
Determine if someone qualifies for a loan, they must
meet two conditions:
– Must earn at least $30,000/year
– Must have been employed for at least two years
Check first condition, and if it is true, check second
condition
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 17
Nested Decision Structures and the
if-elif-else Statement (2 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 18
Nested Decision Structures and the
if-elif-else Statement (3 of 3)
• Important to use proper indentation in a nested
decision structure
– Important for Python interpreter
– Makes code more readable for programmer
– Rules for writing nested if statements:
else clause should align with matching if clause
Statements in each block must be consistently indented
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 19
The if-elif-else Statement (1 of 3)
• if-elif-else statement: special version of a
decision structure
– Makes logic of nested decision structures simpler to
write
Can include multiple elif statements
– Syntax: if condition_1:
statement(s)
elif condition_2:
statement(s) Insert as many elif clauses
elif condition_3: as necessary.
statement(s)
else
statement(s)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 20
The if-elif-else Statement (2 of 3)
• Alignment used with if-elif-else statement:
– if, elif, and else clauses are all aligned
– Conditionally executed blocks are consistently indented
• if-elif-else statement is never required, but logic
easier to follow
– Can be accomplished by nested if-else
Code can become complex, and indentation can cause
problematic long lines
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 21
The if-elif-else Statement (3 of 3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 22
Logical Operators
• Logical operators: operators that can be used to
create complex Boolean expressions
– and operator and or operator: binary operators,
connect two Boolean expressions into a compound
Boolean expression
– not operator: unary operator, reverses the truth of its
Boolean operand
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 23
The and Operator
• Takes two Boolean expressions as operands
– Creates compound Boolean expression that is true only
when both sub expressions are true
– Can be used to simplify nested decision structures
• Truth table for the and operator
Value of the Expression
Expression
false false and false
false false and true
false true and false
true true and true
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 24
The or Operator
• Takes two Boolean expressions as operands
– Creates compound Boolean expression that is true
when either of the sub expressions is true
– Can be used to simplify nested decision structures
• Truth table for the or operator
Value of the Expression
Expression
false false and false
true false and true
true true and false
true true and true
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 25
Short-Circuit Evaluation
• Short circuit evaluation: deciding the value of a
compound Boolean expression after evaluating only
one sub expression
– Performed by the or and and operators
For or operator: If left operand is true, compound
expression is true. Otherwise, evaluate right operand
For and operator: If left operand is false, compound
expression is false. Otherwise, evaluate right operand
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 26
The not Operator
• Takes one Boolean expressions as operand and
reverses its logical value
– Sometimes it may be necessary to place parentheses
around an expression to clarify to what you are
applying the not operator
• Truth table for the not operator
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 27
Checking Numeric Ranges with Logical
Operators
• To determine whether a numeric value is within a
specific range of values, use and
– Example: x >= 10 and x <= 20
• To determine whether a numeric value is outside of a
specific range of values, use or
– Example: x < 10 or x > 20
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 28
Boolean Variables
• Boolean variable: references one of two values, True
or False
– Represented by bool data type
• Commonly used as flags
– Flag: variable that signals when some condition exists
in a program
Flag set to False condition does not exist
Flag set to True condition exists
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 29
Turtle Graphics: Determining the State
of the Turtle (1 of 9)
• The turtle.xcor() and turtle.ycor() functions
return the turtle's X and Y coordinates
• Examples of calling these functions in an if
statement:
if turtle.ycor() < 0:
turtle.goto(0, 0)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 30
Turtle Graphics: Determining the State
of the Turtle (2 of 9)
• The turtle.heading() function returns the turtle's
heading. (By default, the heading is returned in degrees.)
• Example of calling the function in an if statement:
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 31
Turtle Graphics: Determining the State
of the Turtle (3 of 9)
• The turtle.isdown() function returns True if the
pen is down, or False otherwise.
• Example of calling the function in an if statement:
if turtle.isdown():
turtle.penup()
if not(turtle.isdown()):
turtle.pendown()
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 32
Turtle Graphics: Determining the State
of the Turtle (4 of 9)
• The turtle.isvisible() function returns True if
the turtle is visible, or False otherwise.
• Example of calling the function in an if statement:
if turtle.isvisible():
turtle.hideturtle()
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 33
Turtle Graphics: Determining the State
of the Turtle (5 of 9)
• When you call turtle.pencolor() without passing an
argument, the function returns the pen's current color as a
string. Example of calling the function in an if statement:
if turtle.pencolor() == 'red':
turtle.pencolor('blue')
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 34
Turtle Graphics: Determining the State
of the Turtle (6 of 9)
• When you call turtle.bgcolor() without passing
an argument, the function returns the current
background color as a string. Example of calling the
function in an if statement:
if turtle.bgcolor() == 'white':
turtle.bgcolor('gray')
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 35
Turtle Graphics: Determining the State
of the Turtle (7 of 9)
• When you call turtle.pensize() without passing an
argument, the function returns the pen's current size as a
string. Example of calling the function in an if statement:
if turtle.pensize() < 3:
turtle.pensize(3)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 36
Turtle Graphics: Determining the State
of the Turtle (8 of 9)
• When you call turtle.speed()without passing an
argument, the function returns the current animation
speed. Example of calling the function in an if statement:
if turtle.speed() > 0:
turtle.speed(0)
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 37
Turtle Graphics: Determining the State
of the Turtle (9 of 9)
• See In the Spotlight: The Hit the Target Game in your
textbook for numerous examples of determining the
state of the turtle.
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 38
Summary
• This chapter covered:
– Decision structures, including:
Single alternative decision structures
Dual alternative decision structures
Nested decision structures
– Relational operators and logical operators as used in
creating Boolean expressions
– String comparison as used in creating Boolean
expressions
– Boolean variables
– Determining the state of the turtle in Turtle Graphics
Copyright © 2021, 2018, 2015 Pearson Education, Inc. All Rights Reserved 3 - 39