Text And Mutability
Submitted By lilgirlsrule
Words: 1419
Pages: 6
CMPT 103
Text and Mutability
Sources:
Chapters 8 and 9 from Think Python and Ch. 10 of Guzdial.
www.macewan.ca/ComputerScience
In these slides…
• Text
• Types of objects
– Mutable
– Immutable
• Strings
– Methods
• Lists
– Methods www.macewan.ca/ComputerScience 2
Text
• Text is the universal medium – it's simple – We can convert any other media to a text representation
– We can convert between media formats using text
• In programming languages (not just
Python), text is usually processed in an array—a long line of characters www.macewan.ca/ComputerScience 3
Text
• We refer to a long line of characters as a string
– In many (especially older) programming languages, text is actually manipulated as arrays (or list) of characters
– Python actually knows how to deal with strings www.macewan.ca/ComputerScience
4
Strings
• Strings are defined with quote marks
• Python supports 3 quote types of quotes: 1. print('this is a string')
2. print("this is a string")
3. print ("""this is a string""")
• Use the right one that allows you to embed quote marks you want, e.g.,
"It's a great day." www.macewan.ca/ComputerScience 5
Triple quotes
• Triple quotes allow you to quite naturally embed new lines within strings def display_greeting(): print("""Hello, world!
How are you today?""")
www.macewan.ca/ComputerScience
6
Under the hood
• Strings are just arrays of characters
• In most cases, characters are just single bytes
– The ASCII encoding standard maps between single byte values and the corresponding characters
www.macewan.ca/ComputerScience
7
Under the hood
• More recently, characters can be multiple bytes
– Unicode uses one to four bytes per character, allowing encodings for glyphs
(characters) of other languages
– Python 3 encodes all characters in
Unicode by default; in the programs we're writing, strings are actually using Unicode
• Python 2 used ASCII
www.macewan.ca/ComputerScience
8
ASCII encoding through ord str = "Hello" for char in str: print(ord(char))
Output:
72
101
108
108
111 www.macewan.ca/ComputerScience 9
Characters than we cannot type • Our keyboards don't have all the characters available to us, and it's hard to type others into strings, e.g.,
– Backspace?
– Return?
– 你好 ?
• We use backslash escapes to include other characters in strings www.macewan.ca/ComputerScience 10
Backslash escapes
•
•
•
•
"\b" backspace "\n" newline (Enter key)
"\t"
tab
"\uXXXX" a Unicode character
– XXXX is a code; each X can be 0-9 or A-F.
– http://www.unicode.org/charts/
www.macewan.ca/ComputerScience
11
Testing strings print("hello\t\tthere\nMark") hello there Mark print("\u4F60") 你 print("\u597D") 好 print("This\bis\na\btest") This␈ is
Thiis
a␈ test test (Wing IDE)
(Python in Terminal)
www.macewan.ca/ComputerScience
12
Manipulating strings
• We can add strings and get their lengths using the kinds of programming features we've seen previously hello = "Hello" print(len(hello)) 5 mark = ", Mark" print(len(mark)) 6 print(hello+mark) Hello, Mark print(len(hello+mark)) 11
www.macewan.ca/ComputerScience
13
Getting parts of strings
• We use the square bracket "[]" notation to get parts of strings
– string[n]
• gives you the nth character in the string
– string[n:m]
• gives you the nth up to (but not including) the mth character
www.macewan.ca/ComputerScience
14
Getting parts of strings hello = "Hello" print(hello[1]) e print(hello[0]) H print(hello[2:4]) ll
H
e
l
l
o
0
1
2
3
4
www.macewan.ca/ComputerScience
15
Omitting start/end print(hello) Hello print(hello[:3]) Hel print(hello[3:]) lo print(hello[:]) Hello www.macewan.ca/ComputerScience 16
Dot notation
• All data in Python are actually objects
• Objects not only store data, but they respond to special functions that only objects of the same type understand
• We call these special functions methods – Methods are functions known only to certain objects
www.macewan.ca/ComputerScience
17
Dot notation
• To execute a