COP 1000c Lab Assignment 7

amunoz1030
GaddisPythonChapter3DecisionStructuresandBoolean.ppt

Copyright © 2018 Pearson Education, Inc.

C H A P T E R 3

Decision Structures and Boolean Logic

Copyright © 2018 Pearson Education, Inc.

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 © 2018 Pearson Education, Inc.

The if Statement

  • 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 © 2018 Pearson Education, Inc.

The if Statement (cont’d.)

  • 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 © 2018 Pearson Education, Inc.

The if Statement (cont’d.)

Copyright © 2018 Pearson Education, Inc.

The if Statement (cont’d.)

  • 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 © 2018 Pearson Education, Inc.

Boolean Expressions and Relational Operators

  • 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
  • Relational operator: determines whether a specific relationship exists between two values
  • Example: greater than (>)

Copyright © 2018 Pearson Education, Inc.

Boolean Expressions and Relational Operators (cont’d.)

  • >= 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 © 2018 Pearson Education, Inc.

Boolean Expressions and Relational Operators (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Boolean Expressions and Relational Operators (cont’d.)

  • Using a Boolean expression with the > relational operator

Copyright © 2018 Pearson Education, Inc.

Boolean Expressions and Relational Operators (cont’d.)

  • 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 © 2018 Pearson Education, Inc.

The if-else Statement

  • 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 © 2018 Pearson Education, Inc.

The if-else Statement (cont’d.)

Copyright © 2018 Pearson Education, Inc.

The if-else Statement (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Comparing Strings

  • 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 © 2018 Pearson Education, Inc.

Comparing Strings (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Nested Decision Structures and the if-elif-else Statement

  • 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 © 2018 Pearson Education, Inc.

Copyright © 2018 Pearson Education, Inc.

Nested Decision Structures and the if-elif-else Statement (cont’d.)

  • 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 © 2018 Pearson Education, Inc.

The if-elif-else Statement

  • 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)

elif condition_3:

statement(s)

else

statement(s)

Insert as many elif clauses

as necessary.

Copyright © 2018 Pearson Education, Inc.

The if-elif-else Statement (cont’d.)

  • 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 © 2018 Pearson Education, Inc.

Copyright © 2018 Pearson Education, Inc.

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 © 2018 Pearson Education, Inc.

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

Expression Value of the Expression
false and false false
false and true false
true and false false
true and true true

Copyright © 2018 Pearson Education, Inc.

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

Expression Value of the Expression
false and false false
false and true true
true and false true
true and true true

Copyright © 2018 Pearson Education, Inc.

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 © 2018 Pearson Education, Inc.

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
Expression Value of the Expression
true false
false true

Copyright © 2018 Pearson Education, Inc.

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 © 2018 Pearson Education, Inc.

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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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.xcor() > 100 and turtle.xcor() < 200:

turtle.goto(0, 0)

if turtle.ycor() < 0:

turtle.goto(0, 0)

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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:

if turtle.heading() >= 90 and turtle.heading() <= 270:

turtle.setheading(180)

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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:


  • When you call turtle.fillcolor() without passing an argument, the function returns the current fill color as a string. Example of calling the function in an if statement:

if turtle.pencolor() == 'red':

turtle.pencolor('blue')

if turtle.fillcolor() == 'blue':

turtle.fillcolor('white')

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • 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 © 2018 Pearson Education, Inc.

Turtle Graphics: Determining the State of the Turtle

  • See In the Spotlight: The Hit the Target Game in your textbook for numerous examples of determining the state of the turtle.

Copyright © 2018 Pearson Education, Inc.

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