Date post: | 21-Jan-2016 |
Category: |
Documents |
Upload: | rodger-sparks |
View: | 219 times |
Download: | 0 times |
Mr. FowlerComputer Science
14 Feb 2011
Strings in Python
Introduction
Prior experience Defining string variables Getting user input Printing strings
Lesson Objectives Understand string structure Access characters and sub-sections from a string Concatenate strings Traverse a string
Strings in use
Strings are generally used to store text data sample=“LEVEL” name=raw_input (“What is your name?”)
Can also store non-natural language data e.g. telephone numbers
my_tel=“+1 (301) 294 4444” my_speed=“300 m/s”
Q: What is the difference between strings and integers?
Strings in use
Strings are generally used to store text data sample=“LEVEL” name=raw_input (“What is your name?”)
Can also store non-natural language data e.g. telephone numbers
my_tel=“+1 (301) 294 4444”
Q: What data should (not) be stored in strings?
String composition
Strings are a composite data type Built from another data type, characters In a string, characters are stored in sequence. Strings can be any length (or empty). String constants are enclosed in double quotes.
str_var = “300 m/s” empty_str=“”
String length
Use len() to return the length of a string sample=“SERIES” len(sample)=
empty_str=“” len(empty_str) =
String representation
In strings, characters are accessed by index …like mailboxes in an apartment building.
First index is 0, not 1. s=“LEVEL” startChar=s[0] just_v=s[ ]
Python strings are immutable (can’t change characters). s[0]=“B”
Try it out
String subsections
Use a range to specify a slice (sub-string) from start index up to but not including the last index speed_display = “300 m/s” middle_two_characters= speed_display[1:3]
Omit the first value to select the start of a string just_num= speed_display[:_]
Omit the second value to select the end of a string
just_unit = speed_display[_:]
Try it out
String operations: Concatenation
Combine strings using + (concatenation operator) full_name = “Henry” + “ “ + “James” print “:” + full_name + ”:”
Concatenation is not addition vision_str=“20”+”20” vision_val=20+20
Try building a string build=“” while len(build)<5: build = build +”a” print build
String comparison
To test for equality, use the == operatoruser_name=raw_input(“Enter your username?”)
if user_name==“Brad”:print “Welcome back Bradley”
To compare order, use the < and > operators if user_name<“Sam”:
print “Your name is before Sam’s in the phone book”
These operators are case sensitive.Upper case characters are ‘less than’ lower
caseTry it out
Traversing through a string
Use a loop to examine each character in a stringstrng=“count the number of u’s in this string”
index = 0
count=0
while index < len(strng):
if strng[index] == “u”
count+=1
How would we traverse backwards?Try it outSee HTTLCS for an alternative format: for in
Summary
Strings are composed of characterslen(sample) :String length sample[i] :Character at index i (starts at 0)sample[start:end] :Slice from start up to but
not including end indexsample+sample : Concatenate stringssample==“test” : Test for equalitysample<test: Test for orderMore details and exercises: HTLLCS Ch 7
Advanced Strings
String operations: find
find() searches for a string within a stringTo use it, insert this at the top of your code:
import string
find() returns the first index of a substring full_name = “Henry James” string.find(full_name,”e”)
You can specify the starting point of the search:string.find(full_name,”e”,2)
If the string is not found, find() returns -1find() is case sensitive