Upload
eric-lester
View
213
Download
0
Embed Size (px)
Citation preview
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
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
October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples
3
The Word Jumble Game
• Example: Word Jumble Game
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
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
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
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
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?
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
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
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]
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
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
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
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
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!!!!!!!!!!!!!
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
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
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” )
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
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”
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
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]
October 4, 2005 ICP: Chapter 4: For Loops, Strings, and Tuples
24
Word Jumble Game - Again
• Example: Word Jumble Game