Computer Science I for Majors Lecture 05 Comparison Operators and - - PowerPoint PPT Presentation

computer science i for majors
SMART_READER_LITE
LIVE PREVIEW

Computer Science I for Majors Lecture 05 Comparison Operators and - - PowerPoint PPT Presentation

CMSC201 Computer Science I for Majors Lecture 05 Comparison Operators and Boolean (Logical) Operators Prof. Katherine Gibson Prof. Jeremy Dixon Based on slides by Shawn Lupoli and Max Morawski at UMBC www.umbc.edu Last Class We Covered


slide-1
SLIDE 1

www.umbc.edu

CMSC201 Computer Science I for Majors

Lecture 05 – Comparison Operators and Boolean (Logical) Operators

  • Prof. Katherine Gibson
  • Prof. Jeremy Dixon

Based on slides by Shawn Lupoli and Max Morawski at UMBC

slide-2
SLIDE 2

www.umbc.edu

Last Class We Covered

  • Expressions
  • Python’s operators

– Including mod and integer division

  • The order of operations
  • Different variables types

– How to cast to a type

  • Constants (and why using them is important)

2

slide-3
SLIDE 3

www.umbc.edu

Any Questions from Last Time?

slide-4
SLIDE 4

www.umbc.edu

Today’s Objectives

  • To learn a bit about main()
  • To learn more of Python’s operators

– Comparison operators – Logical operators

  • To practice using these new operators
  • To become more familiar with using

Boolean variables

4

slide-5
SLIDE 5

www.umbc.edu

Quick Note about main()

slide-6
SLIDE 6

www.umbc.edu

main()

  • In Lab 1, we introduced the code

def main():

as the first line of code in our file

  • main() is an example of a function
  • We can use functions to organize our code

6

slide-7
SLIDE 7

www.umbc.edu

Functions

  • We’ll cover functions in more detail later
  • For now, think of them as something similar to

a variable –Variables hold data –Functions hold code

7

slide-8
SLIDE 8

www.umbc.edu

Calling main()

  • With variables, we use the variable name to

access the data they store

  • We must do the same with functions like

main(), using the function name to execute the code they store

8

slide-9
SLIDE 9

www.umbc.edu

Using main() for Your Code

  • From now on, use main() in your code:

def main(): class = int(input("What class is this? ") print(class, "is awesome!") main() 9

declaring our main() function calling our main() function

slide-10
SLIDE 10

www.umbc.edu

Review: Control Structures & Operators

10

slide-11
SLIDE 11

www.umbc.edu

Control Structures

  • What are the three control structures?

–Sequential –Decision Making

  • Also known as “Selection”

–Looping

  • Also known as “Repetition”
  • (We can also call a function)

11

slide-12
SLIDE 12

www.umbc.edu

Control Structures: Flowcharts

12

slide-13
SLIDE 13

www.umbc.edu

Types of Operators in Python

  • Arithmetic Operators
  • Comparison (Relational) Operators
  • Assignment Operators
  • Logical Operators
  • Bitwise Operators
  • Membership Operators
  • Identity Operators

13

focus of today’s lecture

 

slide-14
SLIDE 14

www.umbc.edu

Comparison Operators

slide-15
SLIDE 15

www.umbc.edu

Vocabulary

  • Comparison operators
  • Relational operators
  • Equality operators

–Are all the same thing

  • Include things like >, >=, <, <=, ==, !=

15

slide-16
SLIDE 16

www.umbc.edu

Vocabulary

  • Logical operators
  • Boolean operators

–Are the same thing

  • Include and, or, and not

16

slide-17
SLIDE 17

www.umbc.edu

Comparison Operators

  • Always return a Boolean result

– True or False – Indicates whether a relationship holds between their operands

17

  • perands

a >= b

comparison operator

slide-18
SLIDE 18

www.umbc.edu

Comparison Examples

  • What is the following comparison asking?

a >= b – Is a greater than or equal to b? a == b – Is a equivalent to b?

18

slide-19
SLIDE 19

www.umbc.edu

List of Operators

19 https://docs.python.org/3.3/library/stdtypes.html

slide-20
SLIDE 20

www.umbc.edu

Comparison Examples (Continued)

  • What do these evaluate to if

a = 10 and b = 20?

a >= b – Is a greater than or equal to b? – Is 10 greater than or equal to 20? – FALSE

20

slide-21
SLIDE 21

www.umbc.edu

Comparison Examples (Continued)

  • What do these evaluate to if

a = 10 and b = 20?

a == b – Is a equivalent to b? – Is 10 equivalent to 20? – FALSE

21

slide-22
SLIDE 22

www.umbc.edu

Comparison vs Assignment

  • A common mistake is to use the assignment
  • perator (=) in place of the relational (==)

– This is a very common mistake to make!

  • This type of mistake does trigger an error in

Python, but you may still make it on paper!

22

slide-23
SLIDE 23

www.umbc.edu

Equals vs Equivalence

  • What does a = b do?

–Sets a equal to b –Replaces a’s value with the value of b

  • What does a == b do?

–Checks if a is equivalent to b

23

slide-24
SLIDE 24

www.umbc.edu

Comparison Operator Examples

slide-25
SLIDE 25

www.umbc.edu

Comparison Operators and Simple Data Types

  • Examples:

8 < 15 evaluates to True 6 != 6 evaluates to False 2.5 > 5.8 evaluates to False 5.9 <= 7.5 evaluates to True

25

slide-26
SLIDE 26

www.umbc.edu

“Value” of Boolean Variables

  • When we discuss Boolean outputs, we think

True and False

  • We can also think of it in terms of

1 and 0

  • True = 1
  • False = 0

26

slide-27
SLIDE 27

www.umbc.edu

“Value” of Boolean Variables

  • Other data types can also be seen as

“True” or “False” in Python

  • Anything empty or zero is False

– "" (empty string), 0, 0.0

  • Everything else is True

– 81.3, 77, -5, "zero", 0.01 – Even "0" evaluates to True

27

slide-28
SLIDE 28

www.umbc.edu

Comparison Operation Examples

a = 10 b = 20 c = 30 bool1 = a == b bool2 = c < b bool3 = c != a print(bool1, bool2, bool3)

28

Prints: False False True

slide-29
SLIDE 29

www.umbc.edu

More Comparison Operation Examples

a = 10 b = 20 c = 30 bool1 = int(a == a) bool2 = a == a >= 10 bool3 = (a == a) + (b == b) + (c == c) print(bool1, bool2, bool3)

29

Prints: 1 True 3

slide-30
SLIDE 30

www.umbc.edu

Logical Operators

slide-31
SLIDE 31

www.umbc.edu

Logical Operators

  • There are three logical operators:

– and – or – not

  • They allow us to build more complex Boolean

expressions –By combining simpler Boolean expressions

31

slide-32
SLIDE 32

www.umbc.edu

Logical Operators – and

  • Let’s evaluate this expression

bool1 = a and b

32

Value of a Value of b Value of bool1

slide-33
SLIDE 33

www.umbc.edu

Logical Operators – and

  • Let’s evaluate this expression

bool1 = a and b

33

Value of a Value of b Value of bool1 True True True True False False False True False False False False

slide-34
SLIDE 34

www.umbc.edu

Logical Operators – and

  • Let’s evaluate this expression

bool1 = a and b

  • For a and b to be True, both a and b must be true

34

Value of a Value of b Value of bool1 True True True True False False False True False False False False

slide-35
SLIDE 35

www.umbc.edu

Logical Operators – and

  • Two ways to write and expressions
  • 1. Explicitly use the keyword:

3 > 2 and 2 > 1

  • 2. String them together, like in math:

x > y > z

– Evaluates to x > y and y > z

35

slide-36
SLIDE 36

www.umbc.edu

Examples of and

a = 10 b = 20 c = 30 ex1 = a < b < c ex2 = a < b and b < c ex3 = a + b == c and b – 10 == a and c / 3 == a print (ex1, ex2, ex3)

36

Prints: True True True

slide-37
SLIDE 37

www.umbc.edu

More Examples of and

a = 10 b = 20 c = 30 bool1 = a > b > c bool2 = a == b > c bool3 = a < b < c print(bool1, bool2, bool3)

37

Prints: False False True

slide-38
SLIDE 38

www.umbc.edu

Logical Operators – or

  • Let’s evaluate this expression

bool2 = a or b

38

Value of a Value of b Value of bool2

slide-39
SLIDE 39

www.umbc.edu

Logical Operators – or

  • Let’s evaluate this expression

bool2 = a or b

39

Value of a Value of b Value of bool2 True True True True False True False True True False False False

slide-40
SLIDE 40

www.umbc.edu

Logical Operators – or

  • Let’s evaluate this expression

bool2 = a or b

  • For a or b to be True, either a or b must be true

40

Value of a Value of b Value of bool2 True True True True False True False True True False False False

slide-41
SLIDE 41

www.umbc.edu

Examples of or

a = 10 b = 20 c = 30 ex1 = a > b or c < b ex2 = a + b <= c + 1 or b > c ex3 = a == c or b + 10 <= a or c/3 == a print (ex1, ex2, ex3)

41

Prints: False True True

slide-42
SLIDE 42

www.umbc.edu

Usage Example

  • Here’s an easy way to remember how the

and and or logical operators work

  • In order to pass the class, you must have:

(grade >= 70) and (cheating == False)

  • For the grade to count for CMSC majors:

ltrGrade == "A" or ltrGrade == "B"

42

slide-43
SLIDE 43

www.umbc.edu

Logical Operators – not

  • Let’s evaluate this expression

bool3 = not a

  • not a calculates the Boolean value of a and

returns the opposite of that

43

Value of a Value of bool3 True False False True

slide-44
SLIDE 44

www.umbc.edu

Complex Expressions

  • We can put multiple operators together!

bool4 = a and (b or c)

  • What does Python do first?

– Computes (b or c) – Computes a and the result

44

slide-45
SLIDE 45

www.umbc.edu

Complex Expression Example

bool4 = a and (b or c)

45

Value of a Value of b Value of c Value of bool4 True True True True True True False True True False True True True False False False False True True False False True False False False False True False False False False False

slide-46
SLIDE 46

www.umbc.edu

Complex Expression Example

bool4 = a and (b or c)

46

Value of a Value of b Value of c Value of bool4 True True True True True True False True True False True True True False False False False True True False False True False False False False True False False False False False

slide-47
SLIDE 47

www.umbc.edu

Truth Table Layout

  • Truth tables follow a pattern for their values

47

Value 1 Value 2 Value 3 Answer True True True True True False True False True True False False False True True False True False False False True False False False

slide-48
SLIDE 48

www.umbc.edu

“Short Circuit” Evaluation

slide-49
SLIDE 49

www.umbc.edu

Short Circuit Evaluation

  • “and” statements short circuit as soon as an

expression evaluates to False

  • “or” statements short circuit as soon as an

expression evaluates to True

49

slide-50
SLIDE 50

www.umbc.edu

Short Circuiting – and

  • Notice that in the expression:

bool1 = a and (b or c)

  • If a is False
  • The rest of the expression doesn’t matter
  • Python will realize this, and if a is false

won’t bother with the rest of the expression

50

slide-51
SLIDE 51

www.umbc.edu

Short Circuiting – or

  • Notice that in the expression:

bool1 = a or (b or c)

  • If a is True
  • The rest of the expression doesn’t matter
  • Python will realize this, and if a is true

won’t bother with the rest of the expression

51

slide-52
SLIDE 52

www.umbc.edu

More Practice

  • Given:

a = 4 b = 5 c = 6 d = True e = False

52

False bool1 = d and (a > b) bool2 = (not d) or (b != c) bool3 = (d and (not e)) or (a > b) bool4 = (a%b==2) and ((not d) or e) False True True

slide-53
SLIDE 53

www.umbc.edu

More More Practice

  • Given:

a = 4 b = 5 c = 6 d = True e = False

53

True bool1 = (d + d) >= 2 and (not e) bool2 = (not e) and (6*d == 12/2) bool3 = (d or (e)) and (a > b) True False

slide-54
SLIDE 54

www.umbc.edu

Decision Making

  • So, why do we care about comparison
  • perators and logical operators so much?
  • We can use them to control how our

program works and what code it runs –We’ll discuss this next time

54

slide-55
SLIDE 55

www.umbc.edu

Announcements

  • Your Lab 2 is meeting this week!

– Make sure you attend your correct section

  • Homework 2 is out

– Due by Monday (Feb 15th) at 8:59:59 PM

  • Homework 2 is on Blackboard

– Complete Academic Integrity Quiz to see HW2

55

slide-56
SLIDE 56

www.umbc.edu

Practice Problems

  • Evaluate these expressions – do them

yourself before testing them in Python!

False and False 1 == 1 or 2 == 1 True and 1 == 1 False and 0 == 0 True or 1 == 1 "test" == "testing" not ("testing" == "testing" and "Zed" == "Cool Guy") 1 == 1 and (not ("testing" == 1 or 1 == 0))

56

"test" == 1 not (True and False) not (1 == 1 and 0 >= 1) not (10 == 1 or 1000 == 1000) not (1 <= 10 or 3 == 4) 1 >= 0 and 2 == 1

From: http://learnpythonthehardway.org/book/ex28.html

slide-57
SLIDE 57

www.umbc.edu

Practice Problems

  • Create and fill out truth tables for the

following Boolean expressions

– Try it with and without using short circuiting! a or b or c not a and not b a or (b and not c) a and (b or c) and not d

57