Strings - PY4E

Strings - PY4E

Strings Chapter 6 Python for Everybody www.py4e.com String Data Type A string is a sequence of characters A string literal uses quotes 'Hello' or "Hello" For strings, + means concatenate When a string contains numbers, it is still a string We can convert numbers in a string into a number using int() >>> str1 = "Hello" >>> str2 = 'there' >>> bob = str1 + str2

>>> print(bob) Hellothere >>> str3 = '123' >>> str3 = str3 + 1 Traceback (most recent call last): File "", line 1, in TypeError: cannot concatenate 'str' and 'int' objects >>> x = int(str3) + 1 >>> print(x) 124 >>> Reading and Converting We prefer to read data in using strings and then parse and convert the data as we need

This gives us more control over error situations and/or bad user input Input numbers must be converted from strings >>> name = input('Enter:') Enter:Chuck >>> print(name) Chuck >>> apple = input('Enter:') Enter:100 >>> x = apple 10 Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for -: 'str' and 'int' >>> x = int(apple) 10

>>> print(x) 90 Looking Inside Strings We can get at any single character in a string using an index specified in square brackets The index value must be an integer and starts at zero The index value can be an expression that is computed b a n a n a 0 1 2 3 4 5 >>> >>> >>>

a >>> >>> >>> n fruit = 'banana' letter = fruit[1] print(letter) x = 3 w = fruit[x - 1] print(w) A Character Too Far You will get a python error if you attempt to index beyond the end of a string

So be careful when constructing index values and slices >>> zot = 'abc' >>> print(zot[5]) Traceback (most recent call last): File "", line 1, in IndexError: string index out of range >>> Strings Have Length The built-in function len gives us the length of a string

b a n a n a 0 1 2 3 4 5 >>> fruit = 'banana' >>> print(len(fruit)) 6 len Function A function is some stored code that we use. A function takes some input and produces an output. >>> fruit = 'banana' >>> x = len(fruit) >>> print(x) 6 'banana'

(a string) len() function 6 (a number) len Function A function is some stored code that we use. A function takes some input and produces an output. >>> fruit = 'banana' >>> x = len(fruit) >>> print(x) 6

'banana' (a string) def len(inp): blah blah for x in y: blah blah 6 (a number) Looping Through Strings Using a while statement, an iteration variable, and the len function, we can construct a loop to look at

each of the letters in a string individually fruit = 'banana' index = 0 while index < len(fruit): letter = fruit[index] print(index, letter) index = index + 1 0b 1a 2n 3a 4n 5a Looping Through Strings A definite loop using a

for statement is much more elegant The iteration variable is completely taken care of by the for loop fruit = 'banana' for letter in fruit: print(letter) b a n a n a

Looping Through Strings A definite loop using a for statement is much more elegant The iteration variable is completely taken care of by the for loop fruit = 'banana' for letter in fruit : print(letter) index = 0 while index < len(fruit) : letter = fruit[index] print(letter)

index = index + 1 b a n a n a Looping and Counting This is a simple loop that loops through each letter in a string and counts the number of times the loop encounters the 'a' character word = 'banana' count = 0 for letter in word :

if letter == 'a' : count = count + 1 print(count) Looking Deeper into in The iteration variable iterates through the sequence (ordered set) The block (body) of code is executed once for each value in the sequence The iteration variable moves through all of the values in the sequence Iteration variable Six-character

string for letter in 'banana' : print(letter) Yes Done? No Advance letter b a n a n a print(letter) for letter in 'banana' : print(letter)

The iteration variable iterates through the string and the block (body) of code is executed once for each value in the sequence More String Operations Slicing Strings 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 using a colon operator The second number is one beyond the end of the slice up to but not including If the second number is beyond the end of the string, it stops at the end

>>> s = 'Monty Python' >>> print(s[0:4]) Mont >>> print(s[6:7]) P >>> print(s[6:20]) Python Slicing Strings If we leave off the first number or the last number of the slice, it is assumed to be the beginning or end of the string respectively M o n t y P y t h o n

0 1 2 3 4 5 6 7 8 9 10 11 >>> s = 'Monty Python' >>> print(s[:2]) Mo >>> print(s[8:]) thon >>> print(s[:]) Monty Python String Concatenation When the + operator is applied to strings, it means concatenation >>> a = 'Hello' >>> b = a + 'There' >>> print(b) HelloThere >>> c = a + ' ' + 'There'

>>> print(c) Hello There >>> Using in as a Logical Operator The in keyword can also be used to check to see if one string is in another string The in expression is a logical expression that returns True or False and can be used in an if statement >>> fruit = 'banana' >>> 'n' in fruit True

>>> 'm' in fruit False >>> 'nan' in fruit True >>> if 'a' in fruit : ... print('Found it!') ... Found it! >>> String Comparison if word == 'banana': print('All right, bananas.') if word < 'banana': print('Your word,' + word + ', comes before banana.') elif word > 'banana': print('Your word,' + word + ', comes after banana.') else:

print('All right, bananas.') Python has a number of string functions which are in the string library These functions are already built into every string - we invoke them by appending the function to the string variable These functions do not modify the original string, instead they return a new string that has been altered String Library >>> greet = 'Hello Bob' >>> zap = greet.lower() >>> print(zap) hello bob

>>> print(greet) Hello Bob >>> print('Hi There'.lower()) hi there >>> >>> stuff = 'Hello world' >>> type(stuff) >>> dir(stuff) ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

https://docs.python.org/3/library/stdtypes.html#string-methods String Library str.capitalize() str.center(width[, fillchar]) str.endswith(suffix[, start[, end]]) str.find(sub[, start[, end]]) str.lstrip([chars]) str.replace(old, new[, count]) str.lower() str.rstrip([chars]) str.strip([chars]) str.upper() Searching a String We use the find() function to search for a substring within another string find() finds the first occurrence of the

substring If the substring is not found, find() returns -1 Remember that string position starts at zero b a n a n a 0 1 2 3 4 5 >>> >>> >>> 2 >>> >>> -1 fruit = 'banana' pos = fruit.find('na') print(pos)

aa = fruit.find('z') print(aa) Making everything UPPER CASE You can make a copy of a string in lower case or upper case Often when we are searching for a string using find() we first convert the string to lower case so we can search a string regardless of case >>> greet = 'Hello Bob' >>> nnn = greet.upper()

>>> print(nnn) HELLO BOB >>> www = greet.lower() >>> print(www) hello bob >>> Search and Replace The replace() function is like a search and replace operation in a word processor It replaces all occurrences of the search string with the replacement string

>>> greet = 'Hello Bob' >>> nstr = greet.replace('Bob','Jane') >>> print(nstr) Hello Jane >>> nstr = greet.replace('o','X') >>> print(nstr) HellX BXb >>> Stripping Whitespace Sometimes we want to take a string and remove whitespace at the beginning and/or end lstrip() and rstrip() remove

whitespace at the left or right strip() removes both beginning and ending whitespace >>> greet = ' Hello Bob >>> greet.lstrip() 'Hello Bob ' >>> greet.rstrip() ' Hello Bob' >>> greet.strip() 'Hello Bob' >>> '

Prefixes >>> line = 'Please have a nice day' >>> line.startswith('Please') True >>> line.startswith('p') False 21 31 From [email protected] Sat Jan Parsing and Extracting 5 09:14:16 2008 >>> data = 'From [email protected] Sat Jan

>>> atpos = data.find('@') >>> print(atpos) 21 >>> sppos = data.find(' ',atpos) >>> print(sppos) 31 >>> host = data[atpos+1 : sppos] >>> print(host) uct.ac.za 5 09:14:16 2008' Two Kinds of Strings Python 2.7.10 >>> x = ' ' >>> type(x) >>> x = u' ' >>> type(x)

>>> Python 3.5.1 >>> x = ' ' >>> type(x) >>> x = u' ' >>> type(x) >>> In Python 3, all strings are Unicode Summary String type String operations

Read/Convert String library Indexing strings [] String comparisons Slicing strings [2:4] Searching in strings Looping through strings with for and while Replacing text Concatenating strings with +

Stripping white space 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. Initial Development: Charles Severance, University of Michigan School of Information Insert new Contributors and Translators here ...

Recently Viewed Presentations

  • Ethics, Values & Issues in Cybertechnology >>> CS222.01

    Ethics, Values & Issues in Cybertechnology >>> CS222.01

    Laws - rules imposed by the government which are enforced by . ex post (after the fact) sanctions. The complicated IRS tax code is a set of laws that dictates how much we owe. If we break these laws we...
  • Assessing scales of thermal influence in alluvial floodplains

    Assessing scales of thermal influence in alluvial floodplains

    Excellent opportunity for experimentation on a partially constrained, partially wild alluvial floodplain Presence of 4 species of Pacific Salmon Opportunity to change existing land use patterns Two decades of salmonid life stage monitoring Primary drivers of hyporheic exchange 1- Scale...
  • Agriculture - AP Human Geography - Home

    Agriculture - AP Human Geography - Home

    Location of agricultural hearths. Vegetative planting. Reproduction through cloning, cutting and splitting roots. Originated in Southeast Asia to China, Japan, India, S.W. Asia, Africa, and Mediterranean
  • Team 5 3D Braille Display - Michigan State University

    Team 5 3D Braille Display - Michigan State University

    Team 53D Braille Display. Steven Chao. Kodai Ishikawa. Daniel Olbrys. Terry Pharaon. Michael Wang. Sponsor: MSU Resource Center for Persons with Disabilities & Dr. Satish Udpa
  • Deterministic Global Parameter Estimation for a Budding Yeast ...

    Deterministic Global Parameter Estimation for a Budding Yeast ...

    Times New Roman Arial Wingdings Comic Sans MS Tahoma Hoefler Text 宋体 Ricepaper 1_Ricepaper 2_Ricepaper Microsoft Equation 3.0 MathType 4.0 Equation Microsoft Photo Editor 3.0 Photo Microsoft Word Document Adobe Acrobat Document Pathway Modeling and Problem Solving Environments The Fundamental...
  • Field Evidence to Constrain Models of Glacio-Isostatic Uplift

    Field Evidence to Constrain Models of Glacio-Isostatic Uplift

    The altitude of the inner margins of fluvial, fluvio-glacial and marine terraces were determined at 20-50m intervals by using a Leica 350 SR GPS. ... 21.75m and 15m. The shoreline fragments merge into a terraced outwash fan that indicates that...
  • 345 CS Syntax Analysis Sections 4.1-4.4: Dr. Mohamed

    345 CS Syntax Analysis Sections 4.1-4.4: Dr. Mohamed

    Syntax Analysis Sections 4.1-4.4: lm Other Derivation Concepts Leftmost: Replace the leftmost non-terminal symbol E E A E id A E id * E id * id Rightmost: Replace the rightmost non-terminal symbol E E A E E A id...
  • SUCCESSFUL CUSTOMER RELATIONS THE LODGING INDUSTRY THE TOURISM

    SUCCESSFUL CUSTOMER RELATIONS THE LODGING INDUSTRY THE TOURISM

    Guests may be quoted the 'rack rate' for a room (the highest rate), or be given discounted rates such as: 'corporate or business' 'government' 'educational' 'family' 'weekly rates' 'airline or agent' 'complimentary' (free promotion) The Hubbart formula helps managers set...