ch03.pptx
Document Details
Uploaded by FaithfulSymbol
2018
Tags
Full Transcript
Fundamentals of Python: First Programs Second Edition Chapter 3 Loops and Selection Statements © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for us...
Fundamentals of Python: First Programs Second Edition Chapter 3 Loops and Selection Statements © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 1 Objectives (1 of 2) 3.1 Write a loop to repeat a sequence of actions a fixed number of times 3.2 Write a loop to traverse the sequence of characters in a string 3.3 Write a loop that counts down and a loop that counts up 3.4 Write an entry-controlled loop that halts when a condition becomes false © 2018 Cengage. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. Objectives (2 of 2) 3.5 Use selection statements to make choices in a program 3.6 Construct appropriate conditions for condition- controlled loops and selection statements 3.7 Use logical operators to construct compound Boolean expressions 3.8 Use a selection statement and a break statement to exit a loop that is not entry-controlled © 2018 Cengage. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. Definitive Iteration: The for Loop Repetition statements (or loops) repeat an action Each repetition of action is known as pass or iteration Two types of loops Those that repeat action a predefined number of times (definite iteration) Those that perform action until program determines it needs to stop (indefinite iteration) © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 4 Executing a Statement a Given Number of Times (1 of 2) Python’s for loop is the control statement that most easily supports definite iteration >>>for eachPass in range(4): Print(“It’s alive!”, end = “ ”) It’s alive! It’s alive! It’s alive! It’s alive! The form of this type of loop is: For in range():.. First line of code is sometimes called loop header Rest of code is loop body (must be indented and aligned in the same column) © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 5 Executing a Statement a Given Number of Times (2 of 2) Example: Loop to compute an exponentiation for a non- negative exponent >>> number =2 >>> exponent = 3 >>> product = 1 >>> for eachPass in range(exponent): product = product * number print(product, end = “ ”) 248 >>>> product 8 If the exponent were 0, the loop body would not execute and value of product would remain as 1 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 6 Count-Controlled Loops (1 of 2) Loops that count through a range of numbers >>> product = 1 >>> for count in range (4): product = product * (count + 1) >>> product 24 To specify a explicit lower bound: >>> product = 1 >>> for count in range (1, 5): product = product * count >>> product 24 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 7 Count-Controlled Loops (2 of 2) Example: bound-delimited summation >>> lower = int(input(“Enter the lower bound: ”)) Enter the lower bound: 1 >>> upper = int(input(“Enter the upper bound: ”)) Enter the upper bound: 10 >>> theSum = 0 >>> for number in range(lower, upper + 1): theSum = theSum + number >>> theSum 55 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 8 Augmented Assignment The assignment symbol can be combined with the arithmetic and concatenation operators to provide augmented assignment operations: a = 17 s = “hi” a += 3 #Equivalent to a = a + 3 a −= 3 #Equivalent to a = a − 3 a *=3 #Equivalent to a = a * 3 a /= 3 #Equivalent to a = a / 3 a %= 3 #Equivalent to a = a % 3 s += “ there” #Equivalent to s = s + “ there” Format: = Equivalent to: = © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 9 Loop Errors: Off-by-One Error Example: # Count from 1 through 4, we think >>>for count in range(1,4): print(count) 1 2 3 Loop actually counts from 1 through 3 Not a syntax error, but rather a logic error © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 10 Traversing the Contents of a Data Sequence range returns a list >>> list(range(4)) [0, 1, 2, 3] >>> list(range(1, 5)) [1, 2, 3, 4] Strings are also sequences of characters Values in a sequence can be visited with a for loop: for in : Example: >>> for character in “Hi there!”: print(character, end = “ ”) Hi there! © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 11 Specifying the Steps in the Range range expects a third argument that allows you specify a step value >>> list(range(1, 6, 1)) # Same as using two arguments [1, 2, 3, 4, 5] >>> list(range(1, 6, 2)) # Use every other number [1, 3, 5] >>> list(range(1, 6, 3)) # Use every third number [1, 4] Example: >>> theSum = 0 >>> for count in range(2, 11, 2): theSum += count >>> theSum 30 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 12 Loops that Count Down Example: >>> for count in range(10, 0, −1): print(count, end = " ") 10 9 8 7 6 5 4 3 2 1 >>> list(range(10, 0, −1)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 13 Formatting Text for Output (1 of 3) Many data-processing applications require output that has tabular format Field width: Total number of data characters and additional spaces for a datum in a formatted string The print function automatically begins printing an output datum >>> forin exponent the first available column in range(7, 11): print(exponent, 10 ** exponent) 7 10000000 8 100000000 9 1000000000 10 10000000000 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 14 Formatting Text for Output (2 of 3) % This version contains format string, format operator %, and single data value to be formatted To format integers, letter d is used instead of s To format sequence of data values: % (,..., ) >>> for exponent in range(7, 11): print("%-3d%12d" % (exponent, 10 ** exponent)) 7 10000000 8 100000000 9 1000000000 10 10000000000 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 15 Formatting Text for Output (3 of 3) To format data value of type float: %.f where. is optional Examples: >>> salary = 100.00 >>> print(“Your salary is $” + str(salary)) Your salary is $100.0 >>> print(“Your salary is $%0.2f” % salary) Your salary is $100.00 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 16 Selection: If and If-Else Statements Selection statements allow a computer to make choices Based on a condition © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 17 The Boolean Type, Comparisons, and Boolean Expressions Boolean data type consists of two values: true and false (typically through standard True/False) Example: 4 != 4 evaluates to False Comparison Operator Meaning == Equals != Not equals < Less than > Greater than = Greater than or equal © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 18 If-Else Statements (1 of 2) Also called a two-way selection statement Often used to check inputs for errors: import math area = float(input(“Enter the area: ”)) if area > 0: radius = math’s(area / math.pi) print(“The radius is”, radius) else: print(“Error: the area must be a positive number”) Syntax: if : else: © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 19 If-Else Statements (2 of 2) © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 20 One-Way Selection Statements Simplest form of selection is the if statement if : © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 21 Multi-Way If Statements (1 of 3) A program may be faced with testing conditions that entail more than two alternative courses of action Can be described in code by a multi-way selection statement Letter Grade Range of Numeric Grades A All grades above 89 B All grades above 79 and below 90 C All grades above 69 and below 80 F All grades below 70 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 22 Multi-Way If Statements (2 of 3) Example: number = int(input(“Enter the numeric grade: ”)) if number > 89: letter = ‘A’ elif number > 79: letter = ‘B’ elif number > 69: letter = ‘C’ else: letter = ‘F’ print(“The letter grade is”, letter) Syntax: if : elif : else: © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 23 Multi-Way If Statements (3 of 3) © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 24 Logical Operators and Compound Boolean Expressions (1 of 4) Often a course of action must be taken if either of two conditions is true: Below are two approaches number = int(input(“Enter the numeric grade: ”)) if number > 100: print(“Error: grade must be between 100 and 0”) elif number < 0: print(“Error: grade must be between 100 and 0”) else: # The code to compute and print the result goes here Simplified Code: number = int(input(“Enter the numeric grade: ”)) if number > 100 or number < 0: print(“Error: grade must be between 100 and 0”) else: # The code to compute and print the result goes here © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 25 Logical Operators and Compound Boolean Expressions (2 of 4) © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 26 Logical Operators and Compound Boolean Expressions (3 of 4) Next example verifies some of the claims made in the previous truth >>> A tables: = True >>> B = False >>> A and B False >>> A or B True >>> not A False The logical operators are evaluated after comparisons but before the assignment operator not has higher precedence than and and or © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 27 Logical Operators and Compound Boolean Expressions (4 of 4) Type of Operator Operator Symbol Exponentiation ** Arithmetic negation − Multiplication, division, *, /, % remainder Addition, subtraction +, − Comparison ==, !=, , = Logical negation not Logical conjunction and Logical disjunction or Assignment = © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 28 Short-Circuit Evaluation In (A and B), if A is false, then so is the expression, and there is no need to evaluate B In (A or B), if A is true, then so is the expression, and there is no need to evaluate B Short-circuit evaluation: Evaluation stops as soon as possible Example: count = int(input(“Enter the count: ”)) theSum = int(input(“Enter the sum: ”)) if count > 0 and theSum // count > 10: print(“average > 10”) else: print(“count = 0 or average > import random >>> for roll in range(10): print(random.rand int(1, 6), end = “ ”) 2464323622 © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 39 Random Numbers (2 of 3) Example: A simple guessing game import random smaller = int(input(“Enter the smaller number: ”)) larger = int(input(“Enter the larger number: ”)) myNumber = random.randint(smaller, larger) count = 0 while True: count += 1 userNumber = int(input(“Enter your guess: ”)) if userNumber < myNumber: print(“Too small!”) elif userNumber > myNumber: print(“Too large!”) else: print(“Congratulations! You've got it in”, count, “tries!”) break © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 40 Random Numbers (3 of 3) Output from run: Enter the smaller number: 1 Enter the larger number: 100 Enter your guess: 50 Too small! Enter your guess: 75 Too large! Enter your guess: 63 Too small! Enter your guess: 69 Too large! Enter your guess: 66 Too large Enter your guess: 65 You've got it in 6 tries! © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 41 Loop Logic, Errors, and Testing Errors to rule out during testing while loop: Incorrectly initialized loop control variable Failure to update this variable correctly within loop Failure to test it correctly in continuation condition To halt loop that appears to hang during testing, type Control+c in terminal window or IDLE shell If loop must run at least once, use a while True loop with delayed examination of termination condition Ensure a break statement to be reached eventually © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 42 Chapter Summary (1 of 3) Control statements determine order in which other statements are executed in program Definite iteration is process of executing set of statements fixed, predictable number of times Example: use for loop for loop consists of header and set of statements called body Can be used to implement a count-controlled loop - Use range to generate sequence of numbers Can traverse and visit the values in any sequence © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 43 Chapter Summary (2 of 3) A format string and its operator % allow programmer to format data using field width and precision An off-by-one error occurs when loop does not perform intended number of iterations, there being one too many or one too few Boolean expressions evaluate to True or False Constructed using logical operators: and, or, not Python uses short-circuit evaluation in compound Boolean expressions Selection statements enable program to make choices © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 44 Chapter Summary (3 of 3) if-else is a two-way selection statement Conditional iteration is the process of executing a set of statements while a condition is true Use while loop (which is an entry-control loop) A break can be used to exit a loop from its body Any for loop can be converted to an equivalent while loop Infinite loop: Continuation condition never becomes false and no other exit points are provided random.randint returns a random number © 2018 Cengage. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. 45