0% found this document useful (0 votes)
1 views

Lecture04 05

Uploaded by

hxg285b5w2
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Lecture04 05

Uploaded by

hxg285b5w2
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

CN101

Lecture 4-5
Decision Structures and Boolean Logic
2

Topics
• The if Statement
• The if-else Statement
• Comparing Strings
• Nested Decision Structures and the if-elif-else Statement
• Logical Operators
• Boolean Variables
3

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
4

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
5

The if Statement (cont’d.)


6

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
7
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 (>)
8
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
9
Boolean Expressions and Relational
Operators (cont’d.)
10

Example
11

Putting It All Together


12

Putting It All Together


13

Putting It All Together

True
if total >= 10000: total >= 10000

total = total * 0.9


print('Your total is', total)
False total = total * 0.9

print total
14
15
16

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
17

The if-else Statement (cont’d.)


18

The if-else Statement (cont’d.)


19
20
21

Exercise
• Write an if statement that assigns 20 to the variable y,
and assigns 40 to the variable z if the variable x is
greater than 100.
22

Exercise
• Write a program that reads in a positive integer n from
the user and then prints whether n is even or odd.
Hint: An even number is a multiple of 2. Any multiple of 2
leaves a remainder of zero when divided by 2.
An example run of the program is shown below.
Enter a positive integer: 101
101 is odd
23
24

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
25
ASCII Chart
26

Comparing Strings (cont’d.)


27
28
29
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
30
31
32
33
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
34
35

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) Insert as many elif clauses
elif condition_3: as necessary.
statement(s)
else
statement(s)
36

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
37
38
39

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
40

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
41

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 or False False


False or True True
True or False True
True or True True
42

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
43

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

not True False


not False True
44
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
• Can also be written as: 10 <= x <= 20

if x >= 10 and x <= 20


print('The value is in the acceptable range.')
45
Checking Numeric Ranges with
Logical Operators (cont’d)
• To determine whether a numeric value is outside of a
specific range of values, use or
• Example: x < 10 or x > 20

if x < 10 or x > 20
print('The value is outside the acceptable range.')
46
47
48

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
49

Boolean Variables (cont’d)

• For example, the following code determines whether


the quota of $50,000 of a salesperson has been met:
50

Boolean Variables (cont’d)


• The bool variable sales_quota_met can be used as
a flag to indicate whether the sales quota has been met.
We can test the flag in the following way:

or
51
52

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
53

Exercise
• Write a program that asks the user to enter 3 integers.
The program should display the maximum number.
An example run of the program is shown below.
Enter integer #1: 10
Enter integer #2: 35
Enter integer #3: 9
The maximum number is 35
54
55

Exercise
56

You might also like