Professional Documents
Culture Documents
06 Python - Strings
06 Python - Strings
Chapter 6
reachus@cloudxlab.com
String Data Type >>> str1 = "Hello"
>>> str2 = 'there'
>>> bob = str1 + str2
• A string is a sequence of characters >>> print (bob)
Hellothere
• A string literal uses quotes >>> str3 = '123'
'Hello' or "Hello" >>> str3 = str3 + 1
Traceback (most recent call
• For strings, + means “concatenate” last): File "<stdin>", line
1, in <module>TypeError:
• When a string contains numbers, it is cannot concatenate 'str' and
still a string 'int' objects
>>> x = int(str3) + 1
• We can convert numbers in a string >>> print (x)
into a number using int() 124
>>>
reachus@cloudxlab.com
Reading and >>> name = input('Enter:')
Converting Enter:Chuck
>>> print (name)
Chuck
>>> apple = input('Enter:')
• We prefer to read data in using
Enter:100
strings and then parse and
>>> x = apple – 10
convert the data as we need
Traceback (most recent call
last): File "<stdin>", line 1,
• This gives us more control over
in <module>TypeError:
error situations and/or bad user
unsupported operand type(s) for
input
-: 'str' and 'int'
• Raw input numbers must be >>> x = int(apple) – 10
>>> print (x)
converted from strings
90
reachus@cloudxlab.com
Looking Inside Strings
• We can get at any single character b a n a n a
in a string using an index specified
in square brackets 0 1 2 3 4 5
reachus@cloudxlab.com
Strings Have Length
b a n a n a
• There is a built-in function len that 0 1 2 3 4 5
gives us the length of a string
>>> fruit = 'banana'
>>> print (len(fruit))
6
reachus@cloudxlab.com
Len Function
>>> fruit = 'banana' A function is some stored
>>> x = len(fruit) code that we use. A
>>> print (x) function takes some input
6 and produces an output.
'banana' len() 6
(a (a number)
string) function
reachus@cloudxlab.com
Looping Through Strings
reachus@cloudxlab.com
Looping Through Strings
reachus@cloudxlab.com
Looping Through Strings
reachus@cloudxlab.com
Looping and Counting
reachus@cloudxlab.com
Looking deeper into in
• The iteration variable
“iterates” through the
sequence (ordered set)
Six-character string
Iteration variable
• The block (body) of code is
executed once for each for letter in 'banana' :
value in the sequence
print (letter)
• The iteration variable moves
through all of the values in
the sequence
reachus@cloudxlab.com
Yes No b a n a n a
Done? Advance letter
print letter
The iteration variable “iterates” through the string and the block
(body) of code is executed once for each value in the sequence
reachus@cloudxlab.com
M o n t y P y t h o n
0 1 2 3 4 5 6 7 8 9 10 11
• We can also look at any
continuous section of a string >>> s = 'Monty Python'
using a colon operator >>> print (s[0:4])
Mont
• The second number is one >>> print (s[6:7])
beyond the end of the slice - P
“up to but not including”
>>> print (s[6:20])
• If the second number is Python
beyond the end of the string, it
stops at the end
Slicing Strings
reachus@cloudxlab.com
M o n t y P y t h o n
0 1 2 3 4 5 6 7 8 9 10 11
Slicing Strings
reachus@cloudxlab.com
String Concatenation
>>> a = 'Hello'
• When the + operator is >>> b = a + 'There'
>>> print (b)
applied to strings, it
HelloThere
means “concatenation”
>>> c = a + ' ' + 'There'
>>> print (c)
Hello There
>>>
reachus@cloudxlab.com
Using in as a logical Operator
• The in keyword can also be >>> fruit = 'banana'
>>> 'n' in fruit
used to check to see if one True
string is “in” another string >>> 'm' in fruit
False
reachus@cloudxlab.com
String Comparison
if word == 'banana':
print ('All right, bananas.')
reachus@cloudxlab.com
String Library
• Python has a number of string
functions which are in the string >>> greet = 'Hello Bob'
library >>> zap = greet.lower()
>>> print (zap)
• These functions are already built into
hello bob
every string - we invoke them by
>>> print (greet)
appending the function to the string
Hello Bob
variable
>>> print ('Hi There'.lower())
• These functions do not modify the hi there
original string, instead they return a >>>
new string that has been altered
reachus@cloudxlab.com
>>> stuff = 'Hello world'
>>> type(stuff)
<type 'str'>
>>> dir(stuff)
['capitalize', 'center', 'count', 'decode', 'encode',
'endswith', 'expandtabs', 'find', 'format', 'index',
'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
'istitle', 'isupper', 'join', 'ljust', 'lower',
'lstrip', 'partition', 'replace', 'rfind', 'rindex',
'rjust', 'rpartition', 'rsplit', 'rstrip', 'split',
'splitlines', 'startswith', 'strip', 'swapcase',
'title', 'translate', 'upper', 'zfill']
https://docs.python.org/2/library/stdtypes.html#string-methods
reachus@cloudxlab.com
reachus@cloudxlab.com
String Library
reachus@cloudxlab.com
Searching a String
b a n a n a
• We use the find() function to search
for a substring within another string 0 1 2 3 4 5
• find() finds the first occurrence of
>>> fruit = 'banana'
the substring
>>> pos = fruit.find('na')
>>> print (pos)
• If the substring is not found, find() 2
returns -1 >>> aa = fruit.find('z')
>>> print (aa)
• Remember that string position -1
starts at zero
reachus@cloudxlab.com
Making everything UPPER CASE
• You can make a copy of a string >>> greet = 'Hello Bob'
in lower case or upper case >>> nnn = greet.upper()
>>> print (nnn)
• Often when we are searching for HELLO BOB
a string using find() - we first >>> www = greet.lower()
convert the string to lower case >>> print (www)
so we can search a string hello bob
regardless of case >>>
reachus@cloudxlab.com
Search and Replace
• The replace()
function is like a
>>> greet = 'Hello Bob'
“search and replace” >>> nstr = greet.replace('Bob','Jane')
operation in a word >>> print (nstr)
processor Hello Jane
>>> nstr = greet.replace('o','X')
• It replaces all
>>> print (nstr)
HellX BXb
occurrences of the >>>
search string with the
replacement string
reachus@cloudxlab.com
Stripping Whitespace
• Sometimes we want to take a
string and remove whitespace at >>> greet = ' Hello Bob '
the beginning and/or end >>> greet.lstrip()
'Hello Bob '
reachus@cloudxlab.com
Parsing and Extracting
21 31
reachus@cloudxlab.com
Summary
• String type • String operations
• Read/Convert • String library
• Indexing strings [] • String Comparisons
• Slicing strings [2:4] • Searching in strings
• Looping through strings • Replacing text
with for and while • Stripping white space
• Concatenating strings with +
reachus@cloudxlab.com
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance
...
(www.dr-chuck.com) of the University of Michigan School of
Information and open.umich.edu and made available under a
Creative Commons Attribution 4.0 License. Please maintain this
last slide in all copies of the document to comply with the
attribution requirements of the license. If you make a change,
feel free to add your name and organization to the list of
contributors on this page as you republish the materials.