strings
play

Strings [Andersen, Gries, Lee, Marschner, Van Loan, White] Today - PowerPoint PPT Presentation

CS 1110: Introduction to Computing Using Python Lecture 5 Strings [Andersen, Gries, Lee, Marschner, Van Loan, White] Today Return to the string ( str ) type Learn several new ways to use strings See more examples of functions


  1. CS 1110: Introduction to Computing Using Python Lecture 5 Strings [Andersen, Gries, Lee, Marschner, Van Loan, White]

  2. Today • Return to the string ( str ) type  Learn several new ways to use strings • See more examples of functions  Particularly functions with strings • Learn the difference between print and return 2/9/17 Strings 2

  3. Strings are Indexed • s = 'abc d' • t = 'Hello all' 0 1 2 3 4 0 1 2 3 4 5 6 7 8 a b c d H e l l o a l l • What is t[3:6] ? • Access characters with []  s[0] is 'a' A: 'lo a'  s[4] is 'd' B: 'lo'  s[5] causes an error C: 'lo ' CORRECT  s[0:2] is 'ab' (excludes c ) D: 'o '  s[2:] is 'c d' E: I do not know • Called “string slicing” 2/9/17 Strings 3

  4. Strings are Indexed • s = 'abc d' • t = 'Hello all' 0 1 2 3 4 0 1 2 3 4 5 6 7 8 a b c d H e l l o a l l • What is t[:3] ? • Access characters with []  s[0] is 'a' A: 'all'  s[4] is 'd' B: 'l'  s[5] causes an error C: 'Hel' CORRECT  s[0:2] is 'ab' (excludes c ) D: Error!  s[2:] is 'c d' E: I do not know • Called “string slicing” 2/9/17 Strings 4

  5. Other Things We Can Do With Strings • Operation in : s 1 in s 2 • Function len: len(s)  Tests if s 1 “a part of” s 2  Value is # of chars in s  Say s 1 a substring of s 2  Evaluates to an int  Evaluates to a bool • Examples : • Examples :  s = 'abracadabra'  s = 'abracadabra’  'a' in s True  len(s) 11 True  'cad' in s  len(s[1:5]) 4 False  'foo' in s  s[1:len(s)-1] 'bracadabr' 2/9/17 Strings 5

  6. Defining a String Function >>> middle('abc') 'b' >>> middle('aabbcc') 'bb' >>> middle('aaabbbccc') 'bbb' 2/9/17 Strings 6

  7. Defining a String Function def middle(text): 1. Add string parameter """Returns: middle 3 rd of text 2. Add return at end Param text: a string with  Set to be “result” for now length divisible by 3""" 3. Work in reverse # Get length of text  Set subgoals size = len(text)  Identify needed operations # Start of middle third start = size/3  Store results in variables # End of middle third  Assign on previous lines end = 2*size/3 # Get the text result = text[start:end] # Return the result return result 2/9/17 Strings 7

  8. Defining a String Function def middle(text): >>> middle('abc') """Returns: middle 3 rd of text 'b' Param text: a string with length divisible by 3""" >>> middle('aabbcc') 'bb' # Get length of text size = len(text) >>> middle('aaabbbccc') # Start of middle third 'bbb' start = size/3 # End of middle third end = 2*size/3 # Get the text result = text[start:end] # Return the result return result 2/9/17 Strings 8

  9. Advanced String Features: Method Calls • Strings have some useful methods  Like functions, but “with a string in front” • Format : < string name >. <method name> ( x , y, …) • Example : upper() - converts to upper case  s = 'Hello World'  s.upper() 'HELLO WORLD'  s[1:5].upper() 'ELLO'  'methods'.upper() 'METHODS'  'cs1110'.upper() 'CS1110' 2/9/17 Strings 9

  10. Examples of String Methods • s 1 .index(s 2 ) • s = 'abracadabra'  Position of the first • s.index('a') 0 instance of s 2 in s 1 • s.index('rac') 2 • s.count('a') 5 • s 1 .count(s 2 ) 2  Number of times s 2 • s.count('b') appears inside of s 1 0 • s.count('x') 'a b' • ' a b '.strip() • s.strip()  A copy of s with white- space removed at ends See Python Docs for more 2/9/17 Strings 10

  11. String Extraction Example def firstparens(text): >>> s = 'One (Two) Three' """Returns: substring in () >>> firstparens(s) Uses the first set of parens 'Two' Param text: a string with ()""" >>> t = '(A) B (C) D' # Find the open parenthesis >>> firstparens(t) start = text.index('(') 'A' # Store part AFTER paren substr = text[start+1:] # Find the close parenthesis end = substr.index(')') # Return the result return substr[:end] 2/9/17 Strings 11

  12. HANDOUT IS WRONG! def firstparens(text): >>> s = ‘One (Two) Three' """Returns: substring in () >>> firstparens(s) Uses the first set of parens 'Two' Param text: a string with ()""" >>> t = '(A) B (C) D' # Find the open parenthesis >>> firstparens(t) start = s.index('(') 'A' # Store part AFTER paren tail = s[start+1:] # Find the close parenthesis end = tail.index(')') # Return the result return tail[:end]

  13. String Extraction Puzzle def second(thelist): >>> second('cat, dog, mouse, lion') """Returns: second word in a list 'dog' of words separated by commas >>> second('apple, pear, banana') and spaces. 'pear' Ex: second('A, B, C') => 'B' Param thelist: a list of words with at least two commas Where is the error? 1 start = thelist.index(',') A: Line 1 2 tail = thelist[start+1:] B: Line 2 3 end = tail.index(',') C: Line 3 4 result = tail[:end] D: Line 4 5 return result E: There is no error 2/9/17 Strings 13

  14. String Extraction Puzzle def second(thelist): >>> second('cat, dog, mouse, lion') """Returns: second word in a list 'dog' of words separated by commas >>> second('apple, pear, banana') and spaces. 'pear' Ex: second('A, B, C') => 'B' Param thelist: a list of words with at least two commas 1 start = thelist.index(',') tail = thelist[start+2:] 2 tail = thelist[start+1:] 3 end = tail.index(',') 4 but what if there are multiple spaces? result = tail[:end] 5 return result result = tail[:end].strip() 2/9/17 Strings 14

  15. String: Text as a Value • String are quoted characters Type : str  'abc d' (Python prefers)  "abc d" (most languages) • How to write quotes in quotes? Char Meaning \'  Delineate with “other quote” single quote \" double quote  Example : " ' " or ' " ' \n new line  What if need both " and ' ? \t tab • Solution : escape characters \\ backslash  Format: \ + letter  Special or invisible chars 2/9/17 Strings 15

  16. Not All Functions Need a Return def greet(n): """Prints a greeting to the name n Parameter n: name to greet Precondition: n is a string""" print 'Hello '+n+'!' Displays these strings on the screen print 'How are you?' No assignments or return The call frame is EMPTY 2/9/17 Strings 16

  17. Procedures vs. Fruitful Functions Procedures Fruitful Functions • Functions that do something • Functions that give a value • Call them as a statement • Call them in an expression • Example: • Example: greet('Prof. Andersen') x = round(2.56,1) 2/9/17 Strings 17

  18. print vs. return • Sometimes appear to have similar behavior def print_plus(n): def return_plus(n): print n+1 return n+1 >>> print_plus(2) >>> return_plus(2) 3 3 >>> >>> 2/9/17 Strings 18

  19. print vs. return Print Return • Displays a value on the screen • Sends a value from a function  Used primarily for testing call frame back to the caller  Not useful for calculations  Important for calculations  But does not display anything 2/9/17 Strings 19

  20. Python Interactive Shell >>> • executes both statements and expressions • if expression , prints value (if it exists) def return_plus(n): >>> 2+2 return n+1 4 prints to screen >>> >>> return_plus(2) 3 prints to screen >>> 2/9/17 Strings 20

  21. So why do these behave similarly? def print_plus(n): def return_plus(n): print n+1 return n+1 >>> print_plus(2) >>> return_plus(2) 3 3 >>> >>> 2/9/17 Strings 21

  22. return def return_plus(n): return n+1 call frame Python Interactive Shell expression return_plus >>> return_plus(2) return_plus(2) 3 RETURN 3 n 2 creates evaluates return s value Shell automatically prints expression value 2/9/17 Strings 22

  23. print def print_plus(n): print n+1 call frame Python Interactive Shell expression print_plus >>> print_plus(2) print_plus(2) 3 n 2 creates evaluates print s value directly to the Python Interactive Shell Shell tries to print expression value but there is no value (because no return !) 2/9/17 Strings 23

  24. print vs. return Print Return def print_plus(n): def return_plus(n): print n+1 return n+1 >>> x = print_plus(2) >>> x = return_plus(2) 3 >>> >>> x x 3 Nothing here! 2/9/17 Strings 24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend