3. String : Introduction
Python has a built-in string class named "str"
A "raw" string literal is prefixed by an 'r'
Python strings are "immutable"
Characters in a string can be accessed using
[index]
Unlike Java, the '+' does not automatically convert
numbers or other types to string form
Day 1
5. String : Multi-Line
Declare String
Using Single Quotes (')
Using Double Quotes (")
Using Triple Quotes (''' or """)
raw = r'thistn and that'
multi = r"""It was the best of times.
It was the worst of times."""
Day 1
6. String : Formating
str.format(*args, **kwargs)
% operator
text = ("%d little pigs come out or I'll %s and %s and
%s" % (3, 'huff', 'puff', 'blow down'))
'%(language)s has %(number)03d quote types.' %
{"language": "Python", "number": 2}
String = 'What's' 'your name?'
Day 1
8. String : Iterating, Searching, Comparison
Loop on string
for s in str:
Check existence of sting
s in str ?
Comparison of 2 strings
==
<=
>=
!=
Day 1
10. Control Flow : Condition checking
>>> x = int(raw_input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
... x=0
... print 'Negative changed to zero'
... elif x == 0:
... print 'Zero'
... elif x == 1:
Day 1
11. Control Flow : for loop
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
>>> for x in a[:]: # make a slice copy of the entire
list
Day 1
12. Control Flow : break, continue and else
Loop statements may have an else clause;
it is executed when the loop terminates through
exhaustion of the list - (with for)
when the condition becomes false - (with while)
not when the loop is terminated by a break
statement
Day 1
13. Control Flow : for …. else
for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... # loop fell through without finding a factor
... print n, 'is a prime number'
Day 1
14. Control Flow : pass
The pass statement does nothing
Pass in loops
>>> while True:
... pass # Busy-wait for keyboard interrupt (Ctrl+C)
Empty Class
>>> class MyEmptyClass:
... pass
...
Day 1
15. Control Flow : pass
Empty Method
>>> def initlog(*args):
... pass # Remember to implement this!
...
Day 1
16. Control Flow : range
>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(-10, -100, -30)
[-10, -40, -70]
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print i, a[i]
Day 1
18. Data Structure : tuple
Tuples, like strings, are immutable:
it is not possible to assign to the individual items
of a tuple
>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
Day 1
19. Data Structure : tuple reverse assignment
Creating Tuple
>>> t = 12345, 54321, 'hello!'
>>> type(t)
<type 'tuple'>
>>> t
(12345, 54321, 'hello!')
Reverse Operation
>>> x, y, z = t
Day 1
20. Data Structure : list
Python has a great built-in list type named "list"
lst = [], <type 'list'>
Create a new list
colors = ['red', 'blue', 'green']
print colors[0] ## red
print colors[2] ## green
print len(colors) ## 3
Assignment of list
b = colors ## Does not copy the list
Day 1
21. Data Structure : working with list
L is t B u ild U p
list = [] ## Start as the empty list
list.append('a') ## Use append() to add
elements
list.append('b')
L is t S lic e s
list = ['a', 'b', 'c', 'd']
print list[1:-1] ## ['b', 'c']
Day 1
22. Data Structure : list methods
>>> list = ['larry', 'curly', 'moe']
>>> list.append('shemp') ## append elem
at end
>>> list.insert(0, 'xxx') ## insert elem at
index 0
>>> list.extend(['yyy', 'zzz']) ## add list of
elems at end
>>> print list ## ['xxx', 'larry', 'curly', 'moe',
'shemp', 'yyy', 'zzz'] Day 1
23. Data Structure : iterations over list
Using for loop
for var in list
>>> squares = [1, 4, 9, 16]
>>> sum = 0
>>> for num in squares:
>>> … sum += num
>>> … print sum ## 30
Day 1
24. Data Structure : dict
Python's efficient key/value hash table structure
is called a "dict"
The contents of a dict can be written as a series
of key:value pairs
e.g. dict = {key1:value1, key2:value2, ... }
The "empty dict" is just an empty pair of curly
braces {}
Looking up or setting a value in a dict uses
square brackets. e.g. dict['foo']
Day 1
25. Data Structure : creating dict
## Can build up a dict by starting with the the
empty dict {}
## and storing key/value pairs into the dict like
this:
## dict[key] = value-for-that-key
dict = {}
dict['a'] = 'alpha'
dict['g'] = 'gamma'
dict['o'] = 'omega' Day 1
26. Data Structure : Iteration on key or value
## By default, iterating over a dict iterates over its
keys.
## Note that the keys are in a random order.
for key in dict: print key
## prints a g o
## Exactly the same as above
for key in dict.keys(): print key
Day 1
27. Data Structure: Iteration on key and value
## This loop syntax accesses the whole dict by
looping
## over the .items() tuple list, accessing one (key,
value)
## pair on each iteration.
for k, v in dict.items():
print k, '>', v
## a > alpha o > omega g > gamma
Day 1
28. Data Structure : del an item
var = 6
del var # var no more!
list = ['a', 'b', 'c', 'd']
del list[0] ## Delete first element
del list[-2:] ## Delete last two elements
print list ## ['b']
Day 1
29. Data Structure : sorting
The easiest way to sort is with the sorted(list)
function
The sorted() function seems easier to use
compared to sort()
The sorted() function can be customized though
optional arguments
The sorted() optional argument reverse=True
Custom Sorting With key=
Day 1
30. Data Structure : working with sorted( )
S o r t in g N u m b e r s
a = [5, 1, 4, 3]
print sorted(a) ## [1, 3, 4, 5]
print a ## [5, 1, 4, 3]
S o r t in g S t r in g
strs = ['aa', 'BB', 'zz', 'CC']
print sorted(strs) ## ['BB', 'CC', 'aa', 'zz'] (case
sensitive)
Day 1
31. Data Structure : Custom Sorting with key
strs = ['ccc', 'aaaa', 'd', 'bb']
print sorted(strs, key=len) ## ['d', 'bb', 'ccc',
'aaaa']
Day 1
32. Data Structure : Custom comparator
## Say we have a list of strings we want to sort by the
last letter of the string.
strs = ['xc', 'zb', 'yd' ,'wa']
## Write a little function that takes a string, and returns
its last letter.
## This will be the key function (takes in 1 value, returns
1 value).
def MyComparator(s):
Day 1
33. Next Session ?
Function
Dynamic Functions
Object Oriented
Class
Inheritance
Method Overload, Override
Python Packaging
__init__.py
Day 1