/
Strings Strings

Strings - PowerPoint Presentation

sherrill-nordquist
sherrill-nordquist . @sherrill-nordquist
Follow
411 views
Uploaded On 2016-07-21

Strings - PPT Presentation

Victor Norman CS104 Calvin College Reading Quiz Counts toward your grade Collection Data Type a data type that consists of multiple smaller data items aka composite data type items may have to be one type or may be of multiple types Data may be ordered or not ID: 413518

print string based item string print item based code remove index idx resstr function type res def write sequence result activity cheeses

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Strings" 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.


Presentation Transcript

Slide1

Strings

Victor Norman

CS104

Calvin CollegeSlide2

Reading Quiz

Counts toward your grade.Slide3

Collection Data Type

a data type that consists of multiple “smaller” data items.

aka “composite data type”.

items may have to be one type or may be of multiple types. Data may be ordered or not.

string: each item is a single character. Ordered.

list: items may be any type. Ordered.

dictionary: items may be any type. Unordered.

objects: any type. Unordered.Slide4

String Type

consists of multiple characters, in order.

may be empty: “”

is

immutable

:

C

annot be changed once it is created.

Any string methods that seem like they may be changing the string

must

be returning a new string.

newName

=

name.capitalize

()

# returns new

str

, name unchangedSlide5

String Operations

+: concatenates two strings to make a

new

string. E.g.,

newStr

= oldStr1 + oldStr2

[]: indexing/subscripting:

stringname

[index].

index from 0 to n – 1.

result is a new string (of length 1).

upper(), lower(), strip()

produce

new

strings.Slide6

Come on and Click!

What is the value of s after the following?

s = ’abc’

s

= ’d’ * 3 + s

s

= s + ’’ * 3

s

= s + ’q’ Slide7

CQ 2

What is the value of s after this code is executed?

s = “What is your name?”

s.upper

()Slide8

Slicing Operation

Syntax and operation similar to indexing, but results in shorter

new

string derived from the original.

indexing: result string length is 1.

slicing: result string length may be > 1.

somestring

[

n:m:s

]

start at character n in

somestring

.

go up to but not including character m.

by step s.

no n

 beginning; no m  end; no s  1.Slide9

Comparing Strings

use == or !=.

can compare with <, >, etc.., but really not used very often.Slide10

Put on your red shoes and click the blues

CQ 1:

What is the output of this code?

sketch = “argument clinic”

print(sketch[7:-1])Slide11

CQ 2

What does t hold?

s = “Knights of Ni!”

t = s[:]Slide12

CQ 3

What does t hold?

s = “Knights of Ni!”

t = s[::-1]Slide13

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

]).Slide14

Examples of each

Item-based

for cheese in cheeses:

print(cheese)

Index-based

for

idx

in range(

len

(cheeses)):

print(cheeses[

idx

])Slide15

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.

I

ndex-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.Slide16

Example

What if we want to print out the cheeses like this:

Cheddar

Gouda

Venezuelan Beaver Cheese

Need to use index-based:Slide17

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

])Slide18

Accumulator Pattern

resStr

= “” # initialize

var

to empty or 0

for

ch

in

someStr

: # for each item

if

isConsonant

(

ch

):

resStr

=

resStr

+

ch

# add to result

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

resStrSlide19

Whiteboard/IDLE Activity

Write the following function that returns a string that is the same as

s

except that spaces are removed.

def

remove_spaces

(s):

Slide20

Whiteboard/IDLE Activity

Write the following function that returns a string that is the same as

s

except that spaces are removed.

def

remove_spaces

(s):

resStr

= “”

for

ch

in s:

if

ch

!= “ “:

resStr

=

resStr

+

ch

return

resStrSlide21

while Loop vs

Index-Based for Loop

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

+= 1Slide22

in

and

not in

very useful for searching a string to see if 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”)Slide23

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

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))Slide25

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 debuggingSlide26

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

Slide27

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, ch2rem=“

aeiou

”):

res = “”

for

ch

in s:

if

ch

not in ch2rem:

res = res +

ch

return res

Slide28

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.

print(

remove_chars

(“Monty Python”))

# should print

Mnty

Pythn

print(

remove_chars

(“Monty Python”, “My”))

# should print

ont

PthonSlide29

Assignment

LOTS of

CodeLab

questions about strings.

Very good practice.Slide30

Whiteboard activity

Given this string, write code to print this out:

message = “greetings from the planet

zorgon

Output:

greetings

from

the

planet

zorgonSlide31

YOCO

“You only click once!”