Download presentation
Presentation is loading. Please wait.
Published byEvangeline Patterson Modified over 9 years ago
1
Object-Oriented Programming in Python Goldwasser and Letscher Chapter 4 Elementary Control Structures Terry Scott University of Northern Colorado 2007 Prentice Hall
2
2 Introduction: Chapter 4 Topics Flow of control –for loop statement –if statement –list comprehension Case Study: DNA to RNA Transcription Case Study: Drawing a Pyramid Chapter 5 continues with other flow of control statements
3
3 For Loop for i in sequence: i is called the loop variable. sequence can be any sequence of values: –list. –str. –tuple. –range command. body of loop – instructions that are executed by the loop. Must be indented.
4
4 For Loop
5
5 For Loop Example (animated) #for loop printing a sequence guests = ['Carol', 'Alice', 'Bob'] for person in guests: print person ================================= Carol Alice Bob
6
6 For Loop Another Example (animated) #Another way to do this (previous code is better) guests = ['Carol', 'Alice', 'Bob'] for i in range(len(guests)): print i, guests[i] ================================= 0 Carol 1 Alice 2 Bob
7
7 For Loop Diagram for Previous Slide
8
8 For Loop Bank Transactions (animated) transactions = [200, -50, 100] balance = 0 for entry in transactions: print balance balance = balance + entry print 'Your balance is', balance =================================== 0 200 150 250 Your balance is 250
9
9 For Loop Diagrams for Previous Slide
10
10 Index-Based Loops for count in range(10,0,-1): print count, print 'Blastoff!' ================================= #output below 10 9 8 7 6 5 4 3 2 1 Blastoff!
11
11 Index-Based Loops (continued) #position starts at 0. add 1 to position to have it start at 1 groceries = ['milk', 'cheese', 'bread', 'cereal'] for position in range(len(groceries)): label = str(1 + position) + '. ' print label + groceries[position] ======================================== 1. milk 2. cheese 3. bread 4. cereal
12
12 Flawed Attempt at Making Names in a List Lower Case guests = ['Carol', 'Alice', 'Bob'] for person in guests person = person.lower() The problem is once a name is made lower case it is not put back in list. See diagram on next slide.
13
13 For Loop Assignments
14
14 Solution to Previous Problem with Lower Case Use an indexed loop. Notice the lower case name is assigned back to the list. guests = ['Carol', 'Alice', 'Bob'] for i in range(len(guests)): guests[i] = guests[i].lower()
15
15 Nested Loops # code prints out chapters 1 and 2 each with # sections a – d and then Appendix. Output # on next slide. for chapter in '12': print 'Chapter ' + chapter for section in 'abcd': print ' Section ' + section print 'Appendix'
16
16 Nested Loop Output Chapter 1 Section a Section b Section c Section d Chapter 2 Section a Section b Section c Section d Appendix
17
17 DNA to RNA Transcription DNA RNA A U C G G C T A
18
18 Case Study: DNA to RNA Transcription #Uses two coordinated lists. Look up base in DNA list. #Use that index to obtain comparable RNA base dnaCodes = 'ACGT' rnaCodes = 'UGCA' dna = raw_input('Enter a DNA sequence: ') rnaList = [] for base in dna: whichPair = dnaCodes.index(base) rnaLetter = rnaCodes[whichPair] rnaList.append(rnaLetter) rna = ''.join(rnaList) print 'Transcribed into RNA:', rna
19
19 Drawing a Pyramid: Using Rectangles and Squares
20
20 Drawing Pyramid with Rectangles from cs1graphics import * numLevels = 8 unitSize = 12 screenSize = unitSize * (numLevels + 1) paper = Canvas(screenSize, screenSize) centerX = screenSize/2.0 for level in range(numLevels): #create top to bottom levels. width = (level + 1)* unitSize block = Rectangle(width, unitSize) centerY = (level + 1) * unitSize block.move(centerX, centerY) block.setFillColor('grey') paper.add(block)
21
21 Pyramid Made of Squares from cs1graphics import * numLevels = 8 unitSize = 12 screenSize = unitSize * (numLevels + 1) paper = Canvas(screenSize, screenSize) centerX = screenSize/2.0 #create levels from top to bottom for level in range(numLevels): centerY = (level + 1) * unitSize leftmostX=centerX-unitSize+level/2.0
22
22 Pyramid Made of Squares (continued) #nested for loop – inside previous for for blockCount in range(level + 1): block = Square(unitSize) block.move(leftmostX+unitSize* blockCount.centerY) block.setFillColor('grey') paper.add(block)
23
23 Conditional Statement
24
24 If Statement Flow Chart if condition: body
25
25 Animated If x = 3 if x == 3: x = 2 * x print x ================================= 6
26
26 Animated If Continued x = 4 if x == 3: x = 2 * x print x ================================= 3
27
27 If-Else Statement
28
28 If-Else Flow Chart if condition: body1 else: body2
29
29 Animated If-Else x = 3 if x < 3: print 'x less than 3' else: print x, 'greater than or equal to 3' ================================ 3 greater than or equal to 3
30
30 Conditional Statements (continued) If condition1: body1 elif condition2: body2 else: body3
31
31 Flowchart for If – elif - else
32
32 Counting DNA Bases Using Conditional Statements numA = numC = numG = numT = 0 for base in dna: if base == 'A': numA += 1 else: if base == 'C': numC += 1 else: if base == 'G': numG += 1 else: numT += 1
33
33 Counting DNA Bases Using Conditional Statements: Better Way (elif is else and if combined) numA = numC = numG = numT = 0 for base in dna: if base == 'A': numA += 1 elif base == 'C': numC += 1 elif base == 'G': numG += 1 else: numT += 1
34
34 List Comprehension auxiliary = [] for person in guests: auxiliary.append(person.lower()) # List comprehension is a shorter way to write # this: auxiliary = [person.lower() for person in guests]
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.