conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · conditionals cs 1111...

18
CS1111 – University of Virginia 1 © Praphamontripong Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] Based in part on “Agnostic Programming: Learning to Design and Test Basic Programming Algorithms” by Kinga Dobolyi, Kindle]

Upload: trandung

Post on 09-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 1© Praphamontripong

ConditionalsCS 1111

Introduction to Programming

Fall 2018

[The Coder’s Apprentice, §6-6.2]Based in part on “Agnostic Programming: Learning to Design and Test Basic Programming Algorithms”

by Kinga Dobolyi, Kindle]

Page 2: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 2© Praphamontripong

What is a Decision Statement?• A statement that evaluates some conditions to true or false.

• A condition (or expression)• Must always evaluate to true or false, i.e., “Boolean

expression”• Use relational operators: >, <, >=, <=, ==, !=

if condition:statement statement …

age 19

Page 3: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 3© Praphamontripong

Calculations that Evaluate to Boolean Values

• < ≤ > ≥ all evaluate to true or false3 < 2 is false

• ==, != also evaluate to true or false 3 == 3 is true3 == 4 is false“jello” != “blue” is true

age > 21

“Boolean value”

True False

Page 4: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 4© Praphamontripong

Decision StructureSimple structure Dual Structure

if condition:statements1

if condition:statements1

else:statements2

condition

statements1

True

False

condition

statements1

TrueFalse

statements2

Indent the block of

statement

Page 5: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 5© Praphamontripong

Two Types of DecisionsSequence Decision Nested Decisionif condition:

block of statements...

if condition:block of statements...

if condition:block of statements...

else:block of statements...

if condition:block of statements...

elif:block of statements...elif:

block of statements...else:

block of statements...

• Nested decisions remember the results of decisions made before them (in the same nesting)

• Independent decisions do not

Page 6: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 6© Praphamontripong

if Statements in Python

• if is a keyword, the if statement must end in a colon• What belongs to a particular if statement is indented

operation “subtraction”

Page 7: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 7© Praphamontripong

elif Statements in Python

• elif is a keyword; it stands for else if• elif is attached to an if or elif before it, and indicates

this elif is nested • (you cannot have a standalone elif)

operation “multiplication”

Page 8: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 8© Praphamontripong

if versus elif

• The one on the left returns 6• if-elif statements are nested,

linked, and mutually exclusive.

• The one on the right returns 4

• The plain if statements are not mutually exclusive, don’t know about each other, and thus all ifstatements get executed

operation “addition”

result 6

operation “addition”

result 6 5 4

Page 9: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 9© Praphamontripong

else statements

• else is a keyword, linked to an if or elif, and get executed if the if/elif above it is false

Page 10: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 10© Praphamontripong

else statements (2)

• else only gets executed if none of the if or elif before it are true

operation “foo”

result operation undefined

Page 11: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 11© Praphamontripong

Indentation Matters

This is another type of “nesting”, and is usually referred to as “nested if-else statements”

num1 0

num2 1

result “” “num1 is 0”

“num1 is 0”

Page 12: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 12© Praphamontripong

Indentation Mattersnum1

num2

result “”

1

3

“num1 is 0”

“num1 is 1”“num1 is 1 num2 <= 3”“num1 is 1 num2 <= 3 finished num1”

“num1 is 1 num2 <= 3 finished num1”

Page 13: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 13© Praphamontripong

Indentation Mattersnum1 1

num2 2

result “” “num1 is 1 "“num1 is 1 num2 <= 3"“num1 is 1 num2 <= 3 finished num1"

“num1 is 0”“num1 is 1 num2 <= 3 finished num1”“num1 is 1 num2 <= 3 finished num1”

Page 14: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 14© Praphamontripong

Indentation Mattersnum1 2

num2 1

result “” “num1 is not 0 or 1”

“num1 is 0”“num1 is 1 num2 <= 3 finished num1”“num1 is 1 num2 <= 3 finished num1”“num1 is not 0 or 1”

Indentationgroups things

if, elif, and else are mutually exclusive

Page 15: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 15© Praphamontripong

Unreachable statements

num1 1

num2 5

result “” “num1 is 1 ”

print(template(1, 5))

“num1 is 1 num2 > 3”“num1 is 1 num2 > 3 finished num1”

Page 16: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 16© Praphamontripong

Programming TRAP

• Assignment statement x = “CS1111”

• Boolean expression x == “CS1111”

x CS1111

Page 17: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 17© Praphamontripong

Boolean Types

• True and False are both keywords and types in Python • Capitalization !!

• not is a keyword that negates a Boolean value

• The code above returns True

Page 18: Conditionals - cs.virginia.eduup3f/cs1111/slides/1111-09-decision.pdf · Conditionals CS 1111 Introduction to Programming Fall 2018 [The Coder’s Apprentice, §6-6.2] ... This is

CS1111 – University of Virginia 18© Praphamontripong

Boolean Values and Calculations

• A boolean value must evaluate to true or false• Two boolean values can be compared with and or or• Use parentheses if you want to combine and or or to disambiguate; e.g., (x and y) or z or x and (y or z)

• You can use any logical operators: and or or or not

x y x and yFalse False FalseFalse True FalseTrue False FalseTrue True True

x y x or yFalse False FalseFalse True TrueTrue False TrueTrue True True

x=F, y=T, z=T FT F

T