Day 3 – Lesson 12 More about strings Python Mini-Course University of Oklahoma Department of Psychology Python Mini-Course: Day 3 – Lesson 12 05/02/09

Download Report

Transcript Day 3 – Lesson 12 More about strings Python Mini-Course University of Oklahoma Department of Psychology Python Mini-Course: Day 3 – Lesson 12 05/02/09

Day 3 – Lesson 12 More about strings

Python Mini-Course University of Oklahoma Department of Psychology 1 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Lesson objectives

1.

2.

3.

Use common string methods Use escape sequences to represent special characters Use string formatting codes to specify the format of strings for printing and file output 2 Python Mini-Course: Day 3 – Lesson 12 05/02/09

String methods

 Like everything else in Python, strings are objects  Objects have methods that are invoked using dot notation object.method([

arguments

]) 3 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Examples

word = 'banana' new_word = word.upper() print new_word index = word.find('a') print index 4 Python Mini-Course: Day 3 – Lesson 12 05/02/09

String methods

 For a complete listing, see http://docs.python.org/library/st dtypes.html#string-methods 5 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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') 6 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Formatting methods (return a new string)

  str.lower() str.upper()  str.title()   str.swapcase() str.strip([chars])  str.lstrip([chars])  str.rstrip([chars]) 7 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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('!') 8 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Format checking methods (return a Boolean value)

 str.isalnum()  str.isalpha()  str.isdigit()  str.islower()  str.isupper()  str.istitle() 9 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Splitting and joining*

 str.split([sep[, maxsplit]])  str.splitlines([keepends])  str.join(seq) *We'll revisit these next week when we cover lists 10 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Special characters

 To express special characters in Python strings, use Standard C style escape sequences  see http://docs.python.org/reference/lexical_ analysis.html#string-literals 11 Python Mini-Course: Day 3 – Lesson 12 05/02/09

12

Escape Sequence Meaning

\\ \' \" \b \f

\n

\r

\t

\uxxxx \xhh Backslash (\) Single quote (') Double quote (") ASCII Backspace (BS) ASCII Formfeed (FF)

ASCII Linefeed (LF)

ASCII Carriage Return (CR)

ASCII Horizontal Tab (TAB)

Character with 16-bit hex value xxxx (Unicode only) Character with hex value hh (7-bit ASCII) Python Mini-Course: Day 3 – Lesson 12 05/02/09

Example 1:

squares.py

print 'x\ty' for x in range(1,10): y = x**2 print str(x) + '\t' + str(y) 13 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Example 1:

squares.py

print 'x\ty\n--\t--' for x in range(1,10): y = x**2 print str(x) + '\t' + str(y) 14 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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) 15 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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 16 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Formatting string conversions

 You can do multiple replacements using % within a single string  Example: s = 'The %s who say %s' % \ ('Knights', 'Ni') print s 17 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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) 18 Python Mini-Course: Day 3 – Lesson 12 05/02/09

String formatting codes

 Syntax %[(

name

)][

flags

][

width

][.

precision

]

code

 Flags left-justify + numeric sign (+/-) space blank before positive numbers 0 zero fill 19 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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 20 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Code Meaning s

String c

d

i u 21 % Character Decimal (integer) Integer Unsigned (integer) Literal '%' Python Mini-Course: Day 3 – Lesson 12

Cod e

e E

f

F g

Meaning

Floating-point exponent e w/ uppercase Floating-point decimal f w/ uppercase e or f G E or F 05/02/09

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 22 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Examples: floats

x = 12.3456789

print 'x = %d' % x print 'x = %f' % x print 'x = %2.4f' % x print 'x = %+2.4f' % x print 'x = %06.2f' % x 23 Python Mini-Course: Day 3 – Lesson 12 05/02/09

Examples: exponential notation

x = 1.34e-6 print 'x = %f' % x print 'x = %e' % x print 'x = %g' % x 24 Python Mini-Course: Day 3 – Lesson 12 05/02/09

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) 25 Python Mini-Course: Day 3 – Lesson 12 05/02/09