october 4, 2005icp: chapter 4: for loops, strings, and tuples 1 introduction to computer programming...

24
October 4, 2005 ICP: Chapter 4: For Loops , Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael Scherger Department of Computer Science Kent State University

Upload: eric-lester

Post on 28-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

1

Introduction to Computer Programming

Chapter 4: For Loops, Strings, and Tuples

Michael Scherger

Department of Computer Science

Kent State University

Page 2: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

2

Contents

• Constructing for loops to move through a sequence

• Use the range() function

• Strings as sequences

• Tuples

• Sequence functions and operators

• Index and slice sequences

Page 3: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

3

The Word Jumble Game

• Example: Word Jumble Game

Page 4: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

4

Using For Loops

• A “for” loop is another control structure for looping– It uses “counter-controlled repetition” to

determine when the loop is to terminate

• It will repeat the loop body for each element in a sequence

• Example: Loopy String

Page 5: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

5

Understanding For Loops

• For loops iterate over every element in a sequence– A string is sequence of character elements

• Example:for letter in anyword:

print letter

Page 6: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

6

Counting With A For Loop

• Often programs need to count and use the current counter value for computation– For loops are best for counting

• Example: Counter

• The range() function returns a sequence of elements

Page 7: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

7

Range Function Examples

• Counting Forward– range(5)– range(10, 20)

• Counting Backward– range(20, 0, -1)– range(20, 10, -1)

• Counting by Different Amounts– range(0, 50, 5)– range( 50, 0, -5)

for ii in range(10, 20)print ii

for ii in range( 20, 0, -1)print ii

for ii in range(0, 50, 5)print ii

Page 8: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

8

Sequence Operators and Functions With Strings

• Remember, a string is a type of sequence

• The function len() returns the length of a sequence (or string)

• The operator “in” test if an element is in a sequence

• Example: Message Analyzer– How could this be written with a loop?

Page 9: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

9

Indexing Strings

• Looping through a sequence or string character by character is an example of sequential access

• The index operator [] allows for random access of a sequence– Syntax:

anyword[ii]

• Example: Random Access

Page 10: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

10

Indexing Strings

• An index is a position in the sequence– In Python position can be positive or negative– anyword[1] == anyword[-4]

• Run-time error if the index is out of range!

“A” “B” “C” “D” “E”0 1 2 3 4

-5 -4 -3 -2 -1anyword

Page 11: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

11

Indexing Strings

• Here is a code fragment to access a random sequence/string element

anyphrase = “I’d like to have an argument”

high = len(anyphrase)

position = random.randrange(0, high)

print anyphrase[position]

Page 12: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

12

String Immutability

• Sequences are either mutable or immutable– Mutable means changeable– Immutable means unchangeable

• Strings are immutable sequences

Page 13: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

13

String Immutability

• Consider the following example>>> name = “John Cleese”>>> print nameJohn Cleese>>> name = “Michael Palin”>>> print nameMichael Palin

• Did we change the string?– No, we just assigned a new string to name

Page 14: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

14

String Immutability

#Runtime Error in Python

word = “game”

word[0] = “n”

runtime error!!!!!!!

name John Cleese

Michael Palin

X

Page 15: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

15

Building A New String

• If your program needs to build a new string it must do so using the string concatenation operator (either + or +=)

• Example: No Vowels

• Note the use of the CONSTANT in the program

Page 16: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

16

Slicing Strings

• Indexing allows access to a single element “slice” from a sequence (string)

• A slice is any consecutive part of a sequence (string)

• Example: Pizza Slicer

• Do More Examples!!!!!!!!!!!!!

Page 17: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

17

Slicing Strings

• Slicing is similar to indexing except you can get a sub-string from the string– use two index values– anystring[low:high]

“A” “B” “C” “D” “E”

0 1 2 3 4 5

-5 -4 -3 -2 -1

Page 18: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

18

Creating Tuples

• A tuple is a sequence that can hold elements of any type– Tuples can hold integers, real numbers,

strings, lists, dictionaries, and other tuples all at the same time

– Tuples are immutable

• Example: Hero’s Inventory

Page 19: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

19

Creating Tuples

• To create a empty tupleanytuple = ()– an empty tuple is considered to be False

if not anytupleprint “The tuple is not empty”

• To create a tuple with elementsdays = (“Mon” , “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun” )

Page 20: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

20

More on Tuples

• To print a tupleprint anytuple– Python will display each element of the tuple

surrounded by parenthesis

• To loop through each element in a tuplefor item in anytuple

print item

Page 21: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

21

Using Tuples

• Example: Hero’s Inventory 2.0

• Using the in operator with tuples– This will test “membership” if an element is in

a tuple

if “Mon” in daysprint “Monday is a days of the week”

Page 22: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

22

Using Tuples

• Remember tuples are immutable– days[1] = “MON” will give a runtime error

• Tuples can be constructed or modified by using concatenation (just like strings)– Use the + or += operator to add new elements

to the end

Page 23: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

23

Using Tuples

• Indexing tuples– Just like indexing strings– Example:

• print days[1]• print days[4]

• Slicing tuples– Just like slicing strings

• print days[2:3]• print days[4:]• print days [-4:-1]

Page 24: October 4, 2005ICP: Chapter 4: For Loops, Strings, and Tuples 1 Introduction to Computer Programming Chapter 4: For Loops, Strings, and Tuples Michael

October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples

24

Word Jumble Game - Again

• Example: Word Jumble Game