1 / 34

Terry Scott University of Northern Colorado 2007 Prentice Hall

Object-Oriented Programming in Python Goldwasser and Letscher Chapter 4 Elementary Control Structures. Terry Scott University of Northern Colorado 2007 Prentice Hall. Introduction: Chapter 4 Topics. Flow of control for loop statement if statement list comprehension

kesia
Download Presentation

Terry Scott University of Northern Colorado 2007 Prentice Hall

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Oriented Programming in PythonGoldwasser and LetscherChapter 4Elementary Control Structures Terry Scott University of Northern Colorado 2007 Prentice Hall

  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. For Loop for i in sequence: <body of loop> • 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. For Loop

  5. For Loop Example (animated) #for loop printing a sequence guests = ['Carol', 'Alice', 'Bob'] for person in guests: print person ================================= Carol Alice Bob

  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. For Loop Diagram for Previous Slide

  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. For Loop Diagrams for Previous Slide

  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. 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. 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. For Loop Assignments

  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. 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. 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. DNA to RNA Transcription

  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. Drawing a Pyramid: Using Rectangles and Squares

  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. 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. 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. Conditional Statement

  24. If Statement Flow Chart if condition: body

  25. Animated If x = 3 if x == 3: x = 2 * x print x ================================= 6

  26. Animated If Continued x = 4 if x == 3: x = 2 * x print x ================================= 3

  27. If-Else Statement

  28. If-Else Flow Chart if condition: body1 else: body2

  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. Conditional Statements (continued) If condition1: body1 elif condition2: body2 else: body3

  31. Flowchart for If – elif - else

  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. 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. 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]

More Related