ECS 10 10/8. Outline Announcements Homework 2 questions Boolean expressions If/else statements State...

Preview:

Citation preview

ECS 10ECS 10

10/810/8

Outline

Announcements Homework 2 questions Boolean expressions If/else statements State variables and avoiding

sys.exit(…) Example: Coin flipping (if time

permits)

Announcements

Professor Amenta will be back on Friday

Dan Alcantara will be covering Monday and Wednesday lectures E-mail address: dfalcantara@gmail.com

Slides will be on class website Temporary location: http://idav.ucdavis.edu/~dfalcant/ecs10/10-08-07.ppt

Homework 2

Homework 2 due Wednesday at 10PM

Don’t use sys.exit(…) Will explain why later today

Questions?

Boolean expressions

if name == “” :name = “Anonymous”print “We’ll call you”,

name, “!”

Boolean Boolean expressionexpression

Boolean algebraBoolean algebra Named after George Named after George

Boole (1815-1864)Boole (1815-1864) Main idea: you can Main idea: you can

write down logic as write down logic as mathematical formulas, mathematical formulas, as well as in sentences. as well as in sentences.

Logic as a Logic as a computational system. computational system. Python does some of Python does some of this computation!this computation!

BooleanBoolean expressions expressions

BooleanBoolean is a new data type. is a new data type. Booleans can be either True or False.Booleans can be either True or False. We now have four data types (and We now have four data types (and

four kinds of expressions): four kinds of expressions):

Data type Examples

Integer 1, 10, 53

Floating point 3.14159, 6.29

String “Hey”, “”, “String”

Boolean True, False

Basic Boolean expressions

Expression Expression in EnglishX == Y “X is equal to Y”

X != Y “X is not equal to Y”

X < Y “X is less than Y”

X > Y “X is greater than Y”

X <= Y “X is less than or equal to Y”

X >= Y “X is greater than or equal to Y”

not ______ “Whatever the condition, it’s not True”

Boolean expressions are True if the expression in English is True, and False

otherwise.

Boolean expression examples

Boolean expressionBoolean expression English expressionEnglish expression ValueValue

““Something” == Something” == “Something”“Something”

The string “Something” The string “Something” is exactly the same as is exactly the same as

the string “Something”.the string “Something”.

TrueTrue

3 < 53 < 5 The integer 3 is less The integer 3 is less than 5.than 5.

TrueTrue

3 > 53 > 5 The integer 3 is greater The integer 3 is greater than 5.than 5.

FalseFalse

““CCat” == “at” == “ccat”at” The string “Cat” is The string “Cat” is exactly the same as the exactly the same as the

string “cat”.string “cat”.

FalseFalse

““Cat” != “cat”Cat” != “cat” The string “Cat” is The string “Cat” is different from the different from the

string “cat”.string “cat”.

TrueTrue

Compound Boolean expressions

Can combine multiple Boolean expressions with ‘and’ and ‘or’ keywords.

Boolean expression

0 < 10 and 0 < 5

English expression

0 is less than 10 and 0 is less than 5

Value TrueBoolean expression

“Dog” == “Dog” or 3 + 2 > 5

English expression

“Dog” is exactly the same as “Dog” or 3+2 is greater than 5

Value TrueBoolean expression

2 + 2 == 4 and 1 + 1 == 11

English expression

2+2 equals 4 and 1 + 1 equals 11

Value False

The if statement The if statement dissecteddissected

‘If’ statements change the flow of the program

Allows different things to happen under different conditions

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”else:

print “Welcome,”, name, “!”

If the player doesn’t have a name, then:

Call the player “Anonymous”

Tell the player that he/she will be called “Anonymous”

If the player does have a name, then:

Welcome the player

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”else:

print “Welcome,”, name, “!”

Check the player’s name

Continue the program

Tell the player they’ve been renamed

Rename the player “Anonymous”

Player didn’t give a name Player gave a name

Welcome the player

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”

Check the player’s name

Continue the program

Tell the player they’ve been renamed

Rename the player “Anonymous”

Player didn’t give a name Player gave a name

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”

‘if’ is a Python command that checks whether a condition is True or False and

changes what the program does next.

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”

‘if’ is a Python command that checks whether a condition is True or False and

changes what the program does next.This is a block, which consists of a sequential set of lines indented the same way. The entire block is run when the

condition is True.

This is a block, which consists of a sequential set of lines indented the same way. The entire block is run when the

condition is True.

The if statement The if statement dissecteddissected

if name == “” :name = “Anonymous”print “We’ll call you”, name,

“!”

‘if’ is a Python command that checks whether a condition is True or False and

changes what the program does next.

This is a condition, which is either True or False. This specific condition checks to see whether or not the

variable “name” equals the empty string.

Side note: Why sys.exit(…) is bad

Some of you have been using it for program 2

Breaks the flow of the program Anything that is expected to happen

after the sys.exit(…) call doesn’t happen

Why sys.exit(…) is badplayerAnswer = raw_input(“What’s your answer? ”)if playerAnswer == “42”:

print “You’re right!”playerScore = playerScore + 1000

else:print “You got it wrong!”

print “Your final score is”, playerScore

Ask for the player’s answer

Check the player’s answer

Insult the player

Print the final score

Award the player 1000 points

Congratulate the player

Answered “42” Didn’t answer “42”

Why sys.exit(…) is badplayerAnswer = raw_input(“What’s your answer? ”)if playerAnswer == “42”:

print “You’re right!”playerScore = playerScore + 1000

else:sys.exit(“You got it wrong!”)

print “Your final score is”, playerScore

X

Ask for the player’s answer

Check the player’s answer

Insult the player

Print the final score

Award the player 1000 points

Congratulate the player

Answered “42” Didn’t answer “42”

Booleans as state variables

State variables store information about the program’s current state

For homework 2, can be combined with ‘if’ statements to determine if program should stop

Their use avoids the need for sys.exit(…) call

skipTheRules = True

if skipTheRules == False: print “Rule 1” print “Rule 2”

print “On with the game!”

Example program: Coin flipping

Objective: Python program will simulate flipping a

coin Coin will land on either heads or tails User will guess either heads or tails before

the flip Problem:

Python doesn’t have any way of randomly flipping a coin

Need to add a module

Our first moduleOur first module A A modulemodule is a collection is a collection

of Python functions, of Python functions, maybe other stuff thrown maybe other stuff thrown in (library in other in (library in other computer languages) computer languages)

import import the module to the module to use its functionsuse its functions

For random numbers, For random numbers, need the need the randomrandom module module

All the functions in All the functions in module module randomrandom are are named named randomrandom.something().something()

Your program

‘randomrandom’ module: Generates random numbers

import random

# get access to random number moduleimport random# use function that picks a random # integer between 1 and 10 (inclusive)x = random.randint(1,10)

Random moduleRandom module Program that picks a number between 1 and 10Program that picks a number between 1 and 10

Example program: Coin Coin flippingflipping

Use random.randint(1,2) to pick Use random.randint(1,2) to pick either 1 or 2either 1 or 2

If 1, then coin is heads.If 1, then coin is heads. If 2, then coin is tails.If 2, then coin is tails.

Start simple, then…Start simple, then…

Now let user pick Heads or TailsNow let user pick Heads or Tails User’s choice has to match coin.User’s choice has to match coin. Uses Boolean Uses Boolean andand and and oror. .

Key commandKey command

if (choice == "H" and coin == 1)\ or (choice == "T" and coin == 2):

\ means statement continues on next \ means statement continues on next lineline

Two ways to win; if either situation Two ways to win; if either situation occurs, user wins. occurs, user wins.

Each situation is an Each situation is an andand ““or” or” them togetherthem together

Use to check inputUse to check input

Or:Or:

And:And:

if (choice == "H") or (choice == "T"):

if (choice != "H") and (choice != "T"):

Recommended