Python Mini-Course University of Oklahoma Department of Psychology Day 3 – Lesson 12 More about strings 05/02/09 Python Mini-Course: Day 3 – Lesson 12 1
Lesson objectives 1. Use common string methods 2. Use escape sequences to represent special characters 3. Use string formatting codes to specify the format of strings for printing and file output 05/02/09 Python Mini-Course: Day 3 – Lesson 12 2
String methods Like everything else in Python, strings are objects Objects have methods that are invoked using dot notation object.method([arguments]) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 3
Examples word = 'banana' new_word = word.upper() print new_word index = word.find('a') print index 05/02/09 Python Mini-Course: Day 3 – Lesson 12 4
String methods For a complete listing, see dtypes.html#string-methods dtypes.html#string-methods 05/02/09 Python Mini-Course: Day 3 – Lesson 12 5
Search methods str.find(sub[, start[, end]]) print word.find('g',2,4) str.index(sub[, start[, end]]) print word.index('g',2,4) str.count(sub[, start[, end]]) print word.count('a') 05/02/09 Python Mini-Course: Day 3 – Lesson 12 6
Formatting methods (return a new string) str.lower() str.upper() str.title() str.swapcase() str.strip([chars]) str.lstrip([chars]) str.rstrip([chars]) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 7
Examples: string_methods2.py s = ' NOBODY expects the Spanish \ Inquisition!!!' print s.lower() print s.upper() print s.title() print s.swapcase() print s.strip() print s.lstrip() print s.rstrip('!') 05/02/09 Python Mini-Course: Day 3 – Lesson 12 8
Format checking methods (return a Boolean value) str.isalnum() str.isalpha() str.isdigit() str.islower() str.isupper() str.istitle() 05/02/09 Python Mini-Course: Day 3 – Lesson 12 9
Splitting and joining* str.split([sep[, maxsplit]]) str.splitlines([keepends]) str.join(seq) *We'll revisit these next week when we cover lists 05/02/09 Python Mini-Course: Day 3 – Lesson 12 10
Special characters To express special characters in Python strings, use Standard C style escape sequences see analysis.html#string-literals analysis.html#string-literals 05/02/09 Python Mini-Course: Day 3 – Lesson 12 11
05/02/09 Python Mini-Course: Day 3 – Lesson Escape SequenceMeaning \\ Backslash (\) \' Single quote (') \" Double quote (") \b ASCII Backspace (BS) \f ASCII Formfeed (FF) \n ASCII Linefeed (LF) \r ASCII Carriage Return (CR) \t ASCII Horizontal Tab (TAB) \uxxxx Character with 16-bit hex value xxxx (Unicode only) \xhh Character with hex value hh (7-bit ASCII)
Example 1: squares.py print 'x\ty' for x in range(1,10): y = x**2 print str(x) + '\t' + str(y) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 13
Example 1: squares.py print 'x\ty\n--\t--' for x in range(1,10): y = x**2 print str(x) + '\t' + str(y) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 14
Example 2: square_roots.py import math print 'x\ty\n--\t--' for x in range(1,10): y = math.sqrt(x) print str(x) + '\t' + str(y) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 15
Formatting string conversions You can use the string formatting operator % to replace values within a string Example: s = 'The knights who say %s' % 'Ni' print s 05/02/09 Python Mini-Course: Day 3 – Lesson 12 16
Formatting string conversions You can do multiple replacements using % within a single string Example: s = 'The %s who say %s' % \ ('Knights', 'Ni') print s 05/02/09 Python Mini-Course: Day 3 – Lesson 12 17
Improving square_roots.py import math print 'x\ty\n--\t--' for x in range(1,10): y = math.sqrt(x) print '%s\t%s' % (x, y) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 18
String formatting codes Syntax %[(name)][flags][width][.precision]code Flags - left-justify + numeric sign (+/-) space blank before positive numbers 0 zero fill 05/02/09 Python Mini-Course: Day 3 – Lesson 12 19
String formatting codes Syntax %[(name)][flags][width][.precision]code Width Number indicating the total field width (max number of characters) Precision Number of digits after the decimal point 05/02/09 Python Mini-Course: Day 3 – Lesson 12 20
05/02/09 Python Mini-Course: Day 3 – Lesson CodeMeaningCod e Meaning s String e Floating-point exponent c Character E e w/ uppercase d Decimal (integer) f Floating-point decimal i Integer F f w/ uppercase u Unsigned (integer) g e or f % Literal '%' G E or F
Examples: integers x = 59 print 'x = %d' % x print 'x = %+d' % x print 'x = %+d%' % x print 'x = %+6d%' % x print 'x = %-6d' % x print 'x = %-6d%' % x print 'x = %06d' % x 05/02/09 Python Mini-Course: Day 3 – Lesson 12 22
Examples: floats x = print 'x = %d' % x print 'x = %f' % x print 'x = %2.4f' % x print 'x = %+2.4f' % x print 'x = %06.2f' % x 05/02/09 Python Mini-Course: Day 3 – Lesson 12 23
Examples: exponential notation x = 1.34e-6 print 'x = %f' % x print 'x = %e' % x print 'x = %g' % x 05/02/09 Python Mini-Course: Day 3 – Lesson 12 24
Example: square_roots2.py import math start, stop = 1, 9 print '%s\t%s' % \ ('x'.center(3), 'y'.center(6)) print '%s\t%s' % (3*'-', 6*'-') for x in range(start, stop+1): y = math.sqrt(x) print '%3d\t%2.4f' % (x, y) 05/02/09 Python Mini-Course: Day 3 – Lesson 12 25