Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.
-
Upload
arlene-dennis -
Category
Documents
-
view
224 -
download
1
Transcript of Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.
![Page 1: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/1.jpg)
Computer Science 111
Fundamentals of Programming I
Making Choices with if Statements
![Page 2: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/2.jpg)
Patterns of Control
• Sequencing - run one statement after another
• Iteration (loops) - run a given sequence of statements several times
• Pretty blind: always move straight ahead (perhaps many times)
![Page 3: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/3.jpg)
Adding Intelligence
• Check for the presence or absence of a condition in the environment
• Take the appropriate actions
• Involves making a choice (to do or not to do, that is the question!)
![Page 4: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/4.jpg)
Asking Questions
• Is the number greater than 0?
• Are we at the end of the list?
• Does the file exist?
• Is the number divisible by 2?
![Page 5: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/5.jpg)
Answers: Boolean Expressions
• Literals: True, False
• Variables
• Results of comparisons
• Results of logical operations
![Page 6: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/6.jpg)
Comparisons>>> x = 2>>> x == 2True>>> x < 3True>>> x > 4False
Operators are ==, !=, <, >, <=, >=
== means equals, = means assignment
!= means not equal to
![Page 7: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/7.jpg)
Example: Absolute Value
• |x| = -x if x < 0, or x otherwise
• Write code that converts a number x to its absolute value
![Page 8: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/8.jpg)
Use an if StatementIf x is less than 0 Set x to -x
![Page 9: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/9.jpg)
Use an if Statementif x < 0: x = -x
Also called a one-way if statement
If the comparison returns True, run the nested statement
Otherwise, do nothing
if <Boolean expression>: # The condition <sequence of statements> # The consequent
![Page 10: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/10.jpg)
Behavior of One-Way if Statement
Consequent
Booleanexpression
False
True
if <Boolean expression>: # The condition <sequence of statements> # The consequent
![Page 11: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/11.jpg)
Example: Checking User Inputs
• A program will work only for inputs > 0
• All other numbers should be rejected with an error message
• Only the positive inputs can be processed
![Page 12: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/12.jpg)
The Area of a Circleimport math
radius = float(input('Enter the radius: '))area = math.pi * radius ** 2print(area)
This version allows negative inputs to be used - very bad!
![Page 13: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/13.jpg)
Use an if-else Statement
This version checks the input and traps errors before they can cause damage
The program responds gracefully with an error message
import math
radius = float(input('Enter the radius: '))if radius <= 0: print('ERROR: Input number must be positive! ')else: area = math.pi * radius ** 2 print(area)
![Page 14: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/14.jpg)
Syntax of if-else Statementimport math
radius = float(input('Enter the radius: '))if radius <= 0: print('ERROR: Input number must be positive!')else: area = math.pi * radius ** 2 print(area)
if <Boolean expression>: # The condition <sequence of statements> # The consequentelse: <sequence of statements> # The alternative
Also called a two-way if statement
![Page 15: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/15.jpg)
Behavior of Two-Way if Statement
if <Boolean expression>: # The condition <sequence of statements> # The consequentelse: <sequence of statements> # The alternative
Consequent
Booleanexpression Alternative
False
True
![Page 16: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/16.jpg)
More Input Checkingrate = int(input('Enter the interest rate[0-100]: '))interest = principal * rate / 100print('Your interest is', interest)
This version allows rates < 0 and rates > 100
Very bad!
![Page 17: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/17.jpg)
More Input Checkingrate = int(input('Enter the interest rate[0-100]: ')) if rate < 0 or rate > 100: print('ERROR: Rate must be between 0 and 100!')else: interest = principal * rate / 100 print('Your interest is', interest)
Use comparisons and the logical operator or to restrict the rate to the legitimate values
![Page 18: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/18.jpg)
The Logical Operators<Boolean expression> or <Boolean Expression>
<Boolean expression> and <Boolean expression>
not <Boolean expression>
The Boolean expressions can be literals (True or False) variables comparisonsBoolean function calls other expressions connected by logical operators
![Page 19: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/19.jpg)
Truth Table for orrate = -1
print rate < 0 or rate > 100
A B A or B
True True True
True False True
False True True
False False False
Python stops evaluating operands when enough info is available to determine the result (short-circuit evaluation)
![Page 20: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/20.jpg)
Truth Table for orrate = 160
print rate < 0 or rate > 100
A B A or B
True True True
True False True
False True True
False False False
In this case, both operands must be evaluated
![Page 21: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/21.jpg)
Truth Table for orrate = 50
print rate < 0 or rate > 100
A B A or B
True True True
True False True
False True True
False False False
In this case, likewise
![Page 22: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/22.jpg)
Truth Table for andrate = -1
print rate >= 0 and rate <= 100
A B A and B
True True True
True False False
False True False
False False False
The and operator uses short-circuit evaluation, too
![Page 23: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/23.jpg)
Truth Table for andrate = 50
print rate >= 0 and rate <= 100
A B A and B
True True True
True False False
False True False
False False False
![Page 24: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/24.jpg)
Truth Table for andrate = 160
print rate >= 0 and rate <= 100
A B A and B
True True True
True False False
False True False
False False False
![Page 25: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/25.jpg)
Truth Table for not
A not A
True False
False True
import os.path
filename = input('Enter the file name: ')if not os.path.isfile(filename): print('ERROR: File does not exist!')else: # Process the file
![Page 26: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/26.jpg)
Precedence of Logical Operatorsprint(False or True and not True)
# Same as
print(False or (True and (not True)))
Ranking:not (logical negation) and (logical product) or (logical sum)
![Page 27: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/27.jpg)
Mutiple Conditionsrate = int(input('Enter the interest rate[0-100]: ')) if rate < 0 or rate > 100: print('ERROR: Rate must be between 0 and 100!')else: interest = principal * rate / 100 print('Your interest is', interest)
An alternative way to write this is to use a series of if statements with different conditions
![Page 28: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/28.jpg)
Multiway if Statementrate = int(input('Enter the interest rate[0-100]: ')) if rate < 0: print('ERROR: Rate must be greater than 0!')elif rate > 100: print('ERROR: Rate must be less than 101!') else: interest = principal * rate / 100 print('Your interest is', interest)
if <Boolean expression>: # The first condition <sequence of statements> # The first consequentelif <Boolean expression>: # The second condition <sequence of statements> # The second consequent…else: <sequence of statements> # The default alternative
![Page 29: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/29.jpg)
Multiway if Statementgrade = int(input('Enter the numeric grade: ')) if grade >= 90: print('A')elif grade >= 80: print('B') elif grade >= 70: print('C') else: print('F')
![Page 30: Computer Science 111 Fundamentals of Programming I Making Choices with if Statements.](https://reader036.fdocuments.net/reader036/viewer/2022062720/56649efa5503460f94c0be12/html5/thumbnails/30.jpg)
For Friday
Finish Chapter 3
(conditional loops)