Victor Norman CS104 Calvin College Itembased vs Indexbased Iteration itembased for ltitemgt in ltsequencegt ltitemgt is each item in the sequence indexbased for lt idx ID: 515095
Download Presentation The PPT/PDF document "Strings, part 2" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Strings, part 2
Victor Norman
CS104
Calvin CollegeSlide2
Item-based
vs
Index-based Iteration
item-based:
for <item> in <sequence>:
<item> is each item in the sequence.
index-based:
for <
idx
> in range(
len
(<sequence>)):
code in the body has the index of what item to deal with, as
someSeq
[
idx
]).Slide3
Examples of each
Item-based
for cheese in cheeses:
print(cheese)
Index-based
for
idx
in range(
len
(cheeses)):
print(cheeses[
idx
])Slide4
When to use which?
item-based:
simpler syntax, easier to read.
use when code does not need to know where the item is in the sequence.
index-based:
harder to read.
a
ccessing the item is more complicated (using indexing operator).
code can know where the item is in the sequence.
code can access other items around the item.Slide5
Example
What if we want to print out the items from a list
cheeses
like this:
Cheddar
Gouda
Venezuelan Beaver Cheese
Need to use index-based:Slide6
Example continued
for
idx
in range(
len
(cheeses)):
#
idx
starts at 0, but we want to
# print out as if indices start at 1,
# so add 1.
print(
str
(
idx
+ 1) + “.”, cheeses[
idx
])Slide7
Accumulator Pattern
resStr
= “”
for
ch
in
someStr
:
if
somethingAbout
(
ch
):
resStr
=
resStr
+
ch
Used item-based, because didn’t care about where we were in the string.
someStr
is a sequence, so syntax is legal.
results accumulated in
resStrSlide8
Whiteboard activity
Given this string:
message = “greetings from the planet
zorgon
”
write
code to print this
out. (Use split().)
greetings
from
the
planet
zorgonSlide9
Whiteboard Activity
Write the following function that returns a string that is the same as
s
except that spaces are removed.
def
remove_spaces
(s):Slide10
while Loop vs
Index-Based for Loop
(Suppose s is a string or a list.)
for
i
in range(
len
(s)):
code here uses s[
i
]
i
= 0
while
i
<
len
(s):
use s[
i
]
i
=
i
+ 1 # better:
i
+= 1Slide11
in
and
not in
very useful for searching a string to see if
a sub-string
is in the string or not.
returns Boolean: so you know if the target is in the string, but don’t know where.
if “wherefore” in
hamletText
:
print(“art thou”)Slide12
Optional Parameters
Terminology:
parameters may be optional in the
call
.
in function definition, optional
params
must appear on the end of the parameter list.
indicated by being given a
default value
.
Code in the function is exactly the same.Slide13
Examples
def
weird(a, b, c=3):
return a + b + c
print(weird(3, 7))
print(weird(3, 7, 44))
def
weirder(a=3, b=4, c=5):
return a + b + c
print(weirder())
print(weirder(7))
print(weirder(7, 8))
print(weirder(7, 8, 9))Slide14
Examples
def
something(a, b, debug=False):
res = a + b
if debug:
print(“something returning “ + res)
return res
x = something(44, -10)
x = something(44, -10, True) # turn on debuggingSlide15
Activity
Write a function that removes certain letters from a given string. If no letters are given, it removes all vowels (not including y). You can assume everything is lowercase. The result is returned.
def
remove_chars
(s, <stuff>): # remove from s
Slide16
Activity continued
Given a string s, write code to call your function on s to remove all vowels. Then, write a function call to remove all letters from a to f, inclusive. Print the results.Slide17
Assignment