[220] strings · 2020-02-19 · [220] strings meena syamkumar mike doescher cheaters caught: 0...
TRANSCRIPT
![Page 1: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/1.jpg)
[220] StringsMeena Syamkumar
Mike Doescher
Cheaters caught: 0Piazza Enrollment 442 / 446
![Page 2: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/2.jpg)
Learning Objectives Today
String Basics• Comparison• Common functions
Method Syntax
Sequences (a string is an example of a sequence)• len• indexing• slicing• for loop
Chapter 8+9 of Think Python
what we've learnedabout strings so far
what we'll learn today
https://naturalfiberproducers.com/store-3/suri-silk-yarn/
![Page 3: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/3.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 4: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/4.jpg)
Comparison
1 < 2 True(because 1 is before 2)
200 < 100 False(because 200 is NOT before 100)
![Page 5: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/5.jpg)
Comparison
1 < 2 True(because 1 is before 2)
200 < 100 False(because 200 is NOT before 100)
“cat” < “dog”
Python can also compare strings
![Page 6: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/6.jpg)
Comparison
1 < 2 True(because 1 is before 2)
200 < 100 False(because 200 is NOT before 100)
“cat” < “dog”
Python can also compare strings
True(because “cat” is before “dog” in the dictionary)
![Page 7: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/7.jpg)
Comparison
“dog” < “doo doo” ???
What about strings that start with the same letter?
![Page 8: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/8.jpg)
Comparison
“dog” < “doo doo” ???
What about strings that start with the same letter?
Look for the first letter that’s different, and compare those.
![Page 9: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/9.jpg)
Comparison
“dog” < “doo doo” True
What about strings that start with the same letter?
Look for the first letter that’s different, and compare those.
![Page 10: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/10.jpg)
Comparison
True
There are three gotchas:
1
2
3
case (upper vs. lower)
digits
prefixes
“dog” < “doo doo”
![Page 11: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/11.jpg)
1. Case rules
“A” < “B” < … < “Y” < “Z”
“a” < “b” < … < “y” < “z”
“C” < “b”“Z” < “a”
makes sense
makes sense
less intuitive
upper case isbefore lower
![Page 12: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/12.jpg)
2. Pesky digits
“0” < “1”
“8” < “9”
“11” < “2”“100” < “15”
makes sense
makes sense
less intuitive
![Page 13: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/13.jpg)
“0” < “1”
“8” < “9”
“11” < “2”“100” < “15”
makes sense
makes sense
remember to find the FIRST difference,and base everything on that
2. Pesky digits
![Page 14: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/14.jpg)
“0” < “1”
“8” < “9”
“11” < “2”“100” < “15”
makes sense
makes sense
2. Pesky digits
remember to find the FIRST difference,and base everything on that
![Page 15: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/15.jpg)
3. Prefixes
String 1: batString 2: batman
![Page 16: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/16.jpg)
3. Prefixes
String 1: batString 2: batman
![Page 17: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/17.jpg)
3. Prefixes
String 1: batString 2: batman
“” < “m”, so String 1 is first:
“bat” < “batman”
![Page 18: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/18.jpg)
Do problem 1
![Page 19: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/19.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 20: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/20.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>>
![Page 21: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/21.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)
len is a normal function,it returns number
of characters in string.
It returns the number of characters in a string
![Page 22: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/22.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>>
![Page 23: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/23.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()
isdigit is a special function,called a method, that operates
on the string in msg.
It returns a bool, whether thestring is all digits
![Page 24: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/24.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()
isdigit is a special function,called a method, that operates
on the string in msg.
It returns a bool, whether thestring is all digits
str.isdigit(msg)equivalent
type o
f msg
method
in st
r
(simila
r to m
od)
![Page 25: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/25.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()False>>>
![Page 26: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/26.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()False>>>
Both the regular function (len) and method (isdigit) are answeringa question about the string in msg, but we call them slightly differently
![Page 27: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/27.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()False>>> msg.upper()'HELLO'
is upper a regular function or a method?
![Page 28: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/28.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()False>>> msg.upper()'HELLO'
methods can be called with literal values as well as with values in variables
![Page 29: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/29.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(msg)5>>> msg.isdigit()False>>> msg.upper()'HELLO'
methods can be called with literal values as well as with values in variables
![Page 30: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/30.jpg)
What is a method?
A special function associated variable/value
>>> msg = "hello">>> len(“220”)3>>> “220”.isdigit()True>>> “Hello World”.upper()‘HELLO WORLD’
methods can be called with literal values as well as with values in variables
![Page 31: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/31.jpg)
String Method Purpose
s.upper() change string to all upper case
s.lower() opposite of upper()
s.strip() remove whitespace (space, tab, etc) before and after
s.lstrip() remove whitespace from left side
s.rstrip() remove whitespace from right side
s.format(args…) replace instances of “{}” in string with args
s.find(needle) find index of needle in s
s.startswith(prefix) does s begin with the given prefix?
s.endswith(suffix) does s end with the given suffix?
s.replace(a, b) replace all instances of a in s with b
Quick demos in interactive mode…
![Page 32: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/32.jpg)
Do problem 2
![Page 33: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/33.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 34: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/34.jpg)
Python Sequences
val val val val val val val
0 1 2 3
val val val val val
4 5 6 7 8 9 10 11
Definition: a sequence is a collection of numbered/ordered values
types of sequences
stringslists
tuples
things you can do with sequences
lenindexing
for loopslicing
![Page 35: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/35.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
stringslists
tuples[today]
things you can do with sequences
lenindexing
for loopslicing
s =
![Page 36: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/36.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
stringslists
tuples[today]
things you can do with sequences
lenindexing
for loopslicing
s =
12
len(s)
![Page 37: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/37.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
stringslists
tuples[today]
things you can do with sequences
lenindexing
for loopslicing
s =
12
len(s)
indexing: access one value
![Page 38: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/38.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
stringslists
tuples[today]
things you can do with sequences
lenindexing
for loopslicing
s =
12
len(s)
indexing: access one value slicing: extract sub-sequence
![Page 39: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/39.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
stringslists
tuples[today]
things you can do with sequences
lenindexing
for loopslicing
s =
12
len(s)
indexing: access one value slicing: extract sub-sequence
for loop: execute for each value
![Page 40: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/40.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
liststuples
s =
12
len(s)
indexing: access one value slicing: extract sub-sequence
for loop: execute for each value
things you can do with sequences
lenindexing
for loopslicing
strings[today]
demos in interactive mode
![Page 41: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/41.jpg)
Do problem 3
![Page 42: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/42.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
liststuples
s =
12
len(s)
indexing: access one value slicing: extract sub-sequence
for loop: execute for each value
things you can do with sequences
lenindexing
for loopslicing
strings[today]
![Page 43: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/43.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 44: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/44.jpg)
Indexing
S: P I Z Z A0 1 2 3 4
Code:
S = “PIZZA”
![Page 45: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/45.jpg)
Indexing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
![Page 46: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/46.jpg)
Indexing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[0] “P”
![Page 47: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/47.jpg)
Indexing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1] “I”
![Page 48: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/48.jpg)
Indexing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[-1] “A”
![Page 49: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/49.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[???] “IZZ”
what to put if we want multiple letters,like “IZZ”?
![Page 50: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/50.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1:4] “IZZ”
![Page 51: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/51.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1:4] “IZZ”
![Page 52: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/52.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1:4] “IZZ”
start is “inclusive”end is “exclusive”
![Page 53: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/53.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1:4] “IZZ”
Many different slices give the same result:S[1:4] == S[1:-1] == S[-4:4] == S[-4:-1]
![Page 54: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/54.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[1:100] “IZZA”
Slices don’t complain about out-of-range numbers.You just don’t get data for that part
![Page 55: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/55.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[50:100] “”
Slices don’t complain about out-of-range numbers.You just don’t get data for that part
![Page 56: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/56.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[ : 2] “PI”
Feel free to leave out one of the numbers in the slice
![Page 57: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/57.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[2 : ] “ZZA”
Feel free to leave out one of the numbers in the slice
![Page 58: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/58.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[2 : ] “ZZA”
Inclusive start and exclusive end makes it easier to split and inject things
![Page 59: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/59.jpg)
Slicing
S: P I Z Z A0 1 2 3 4
-5 -4 -3 -2 -1
S[:3] + “…” + S[3:] “PIZ...ZA”
Inclusive start and exclusive end makes it easier to split and inject things
let’s inject “…” here
![Page 60: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/60.jpg)
Do problem 4
![Page 61: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/61.jpg)
Python Sequences
"h" "e" "l" "l" "o" " " "w"
0 1 2 3
"o" "r" "l" "d" "\n"
4 5 6 7 8 9 10 11
Definition: a string is a sequence of one-character strings
types of sequences
liststuples
s =
12
len(s)
indexing: access one value slicing: extract sub-sequence
for loop: execute for each value
things you can do with sequences
lenindexing
for loopslicing
strings[today]
![Page 62: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/62.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 63: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/63.jpg)
msg = "hello"
# let’s say we want to print# each letter on its own line
Motivation
![Page 64: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/64.jpg)
msg = "hello"
i = ???while i < ???:
???i += ???
Motivation
![Page 65: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/65.jpg)
msg = "hello"
i = 0while i < ???:
???i += ???
Motivation
indexing starts at 0, so msg[0] is ‘h’,so we want to start i at 0
![Page 66: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/66.jpg)
msg = "hello"
i = 0while i < ???:
???i += 1
Motivation
indexing starts at 0, so msg[0] is ‘h’,so we want to start i at 0
we don’t want to skip any letters
![Page 67: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/67.jpg)
msg = "hello"
i = 0while i < len(msg):
???i += 1
Motivation
indexing starts at 0, so msg[0] is ‘h’,so we want to start i at 0
we don’t want to skip any letters
last letter (o) has index 4,or len(msg)-1
![Page 68: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/68.jpg)
msg = "hello"
i = 0while i < len(msg):
???i += 1
Motivation
![Page 69: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/69.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]???i += 1
Motivation
get the letter for the current index
![Page 70: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/70.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]print(letter)i += 1
Motivation
this is the only interesting part(we just want to print each letter!)
![Page 71: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/71.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]print(letter)i += 1
Motivation
this is the only interesting part(we just want to print each letter!)
Code like this for sequences is so commonthat Python provides an easier way, with the for loop
![Page 72: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/72.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]print(letter)i += 1
while vs. for
whileloop
![Page 73: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/73.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]print(letter)i += 1
for letter in msg:print(letter)
while vs. for
whileloop
forloop
they do the same thing!
![Page 74: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/74.jpg)
msg = "hello"
i = 0while i < len(msg):
letter = msg[i]print(letter)i += 1
for letter in msg:print(letter)
while vs. for
whileloop
forloop
they do the same thing!
this happens automatically now
![Page 75: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/75.jpg)
for letter in msg:print(letter)
for syntax
forloop
basic syntax always used
![Page 76: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/76.jpg)
for letter in msg:print(letter)
for syntax
forloop
specify a variable name to use inside the loop,and the sequence you want to loop over
the sequence(e.g., “hello”)
automatically initialized to adifferent item on each iteration
(“h” on 1st, “e” on 2nd, etc)
![Page 77: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/77.jpg)
for letter in msg:print(letter)
for syntax
forloop
specify a variable name to use inside the loop,and the sequence you want to loop over
the sequence(e.g., “hello”)
automatically initialized to adifferent item on each iteration
(“h” on 1st, “e” on 2nd, etc)
do PythonTutor example
![Page 78: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/78.jpg)
Do problem 5
![Page 79: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/79.jpg)
Today's Outline
Comparison
String Methods
Sequences
Slicing
for loop over sequence
for loop over range
![Page 80: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/80.jpg)
msg = “01234”
for item in msg:print(item * 3)
for with range
Output:000111222333444
![Page 81: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/81.jpg)
msg = “01234”
for item in msg:print(item * 3)
for with range
Output:000111222333444
what if we want to iterate over the integers0 to 4 (instead of string digits “0” to “4”)?
![Page 82: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/82.jpg)
msg = “01234”
for item in msg:print(item * 3)
for with range
Output:
what if we want to iterate over the integers0 to 4 (instead of string digits “0” to “4”)?
![Page 83: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/83.jpg)
for item in range(5):print(item * 3)
for with range
Output:036912
what if we want to iterate over the integers0 to 4 (instead of string digits “0” to “4”)?
![Page 84: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/84.jpg)
for item in range(5):print(item * 3)
for with range
Output:036912
using range(N) with a for loop williterate with these values for item:
0, 1, 2, …, N-2, N-1
![Page 85: [220] Strings · 2020-02-19 · [220] Strings Meena Syamkumar Mike Doescher Cheaters caught: 0 Piazza Enrollment 442 / 446](https://reader033.vdocuments.mx/reader033/viewer/2022053017/5f1c77cd89be1b7d2d7680d5/html5/thumbnails/85.jpg)
Do problem 6