Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-Oriented Programming in Python Goldwasser and Letscher Chapter 4 Elementary Control Structures Terry Scott University of Northern Colorado 2007.

Similar presentations


Presentation on theme: "Object-Oriented Programming in Python Goldwasser and Letscher Chapter 4 Elementary Control Structures Terry Scott University of Northern Colorado 2007."— Presentation transcript:

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]


Download ppt "Object-Oriented Programming in Python Goldwasser and Letscher Chapter 4 Elementary Control Structures Terry Scott University of Northern Colorado 2007."

Similar presentations


Ads by Google