Media:Strings_Python

advertisement
Strings in Python
Computer Science
18 Feb 2011
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 so far
 Strings are generally used to store text data
 sample="LEVEL"
 Name=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/should not be stored in strings?
Strings vs. Integers
 Both strings and integer variables can store numbers
my_speed_str="300"
 my_speed_integer=300

 Q: What is the difference between strings and integers?
Strings in use
 Q: Where are strings displayed and entered?
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 (including empty).
 String are enclosed in quotation marks.
str_var = "300 m/s"
 empty_str=""

Length of a string
 Use len(str) to return string length (# of
characters)




sample="SERIES"
len(sample)= 6
empty_str=""
len(empty_str) = 0
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=ss[ 2 ]


Python strings are immutable
(can’t change individual chars)

s[0]="B"
 Try it out

Slices (sections of a string)
 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“


zeroZero = speed_display[ 1 : 3 ]
 Omit the first value to select the start of a string

just_num= speed_display[: 3 ]
 Omit the second value to select the end of a string

just_unit = speed_display[ 4:]
 Try it out
Operations: Concatenation
 Combine strings using + (concatenation operator)
 full_name = "Henry" + " " + "James"
 print ":" + full_name + ":"
 Concatenation is not addition


vision_str="20"+"20" =“2020”
vision_val=20+20 =40
 Try it out: Build a string




build=""
while len(build)<5:
build = build +"a"
print build
String comparison
 To test for equality, use the == operator
 To compare order, use the < and > operators
user_name=raw_input("Enter your name- ")
if user_name==“Sam":
print "Welcome back Sam“
elif user_name<"Sam":
print "Your name is before Sam“
else:
print "Your name is after Sam“
 These operators are case sensitive.
 Upper case characters are ‘less than’ lower case
Operations: Traversing through a string
 Use a loop to examine each character in a string
See HTTLCS for an alternative format: for in
strng="count # of us"
index=0
count=0
while index < len(strng):
if strng[index] == "u“ or strng[index] == “U":
count+=1
index+=1
 Try it out
 How would we traverse backwards?
Summary
 Strings are composed of characters
String length
sample[i]
Character at index i
sample[start:end]
Slice from start up to but not including end index
sample+sample
Concatenate strings
sample=="test" Test for equality
sample<test
Test for order
 len(sample)





Advanced Strings
String operations: find
 find() searches for a string within a string
 To 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 -1
 find() is case sensitive
Download