2. Variables
▶ Binding between a name and an object
▶ Single variable assignment: x = 1
▶ Multi variable assignment: x, y = 1, 2
▶ Swap values: x, y = y, x
3. Data Types
▶ Numbers: int (Integers), float (Real Numbers), bool (Boolean, a subset of int)
▶ Immutable Types: str (string), tuple, bytes, frozenset
▶ Mutable Types: list, set, bytearray, dict (dictionary)
▶ Sequence Types: str, tuple, bytes, bytearray, list
▶ Determining the type of an object: type()
4. Numbers: int and float
▶ 1 + 2 (addition)
▶ 1 – 2 (subtraction)
▶ 1 * 2 (multiplication)
▶ 1 / 2 (division)
▶ 1 // 2 (integer or floor division)
▶ 3 % 2 (modulus or remainder of the division)
▶ 2**2 (power)
5. Numbers: bool (continuation)
▶ 1 > 2
▶ 1 < 2
▶ 1 == 2
▶ Boolean operations: and, or, not
▶ Objects can also be tested for their truth value. The following values are false:
None, False, zero of any numeric type, empty sequences, empty mapping
6. str (String)
▶ x = “This is a string”
▶ x = ‘This is also a string’
▶ x = “””So is this one”””
▶ x = ‘’’And this one as well’’’
▶ x = “””
This is a string that spans more
than one line. This can also be used
for comments.
“””
7. str (continuation)
▶ Indexing elements: x[0] is the first element, x[1] is the second, and so on
▶ Slicing:
▶ [start:end:step]
▶ [start:] # end is the length of the sequence, step assumed to be 1
▶ [:end] # start is the beginning of the sequence, step assumed to be 1
▶ [::step] # start is the beginning of the sequence, end is the length
▶ [start::step]
▶ [:end:step]
▶ These operations are common for all sequence types
8. str (continuation)
▶ Some common string methods:
▶ join (concatenates the strings from an iterable using the string as glue)
▶ format (returns a formatted version of the string)
▶ strip (returns a copy of the string without leading and trailing whitespace)
▶ Use help(str.<command>) in the interactive shell and dir(str)
9. Control Flow (pt. 1): if statement
▶ Compound statement
if <expression>:
suite
elif <expression2>:
suite
else:
suite
10. Control Flow (pt. 2): if statement
age = int(input(“> “))
if age >= 30:
print(“You are 30 or above”)
elif 20 < age < 30:
print(“You are in your twenties”)
else:
print(“You are less than 20”)
11. list
▶ x = [] # empty list
▶ x = [1, 2, 3] # list with 3 elements
▶ x = list(“Hello”)
▶ x.append(“something”) # append object to the end of the list
▶ x.insert(2, “something”) # append object before index 2
12. dict (Dictionaries)
▶ Mapping between keys and values
▶ Values can be of whatever type
▶ Keys must be hashable
▶ x = {} # empty dictionary
▶ x = {“Name”: “John”, “Age”: 23}
▶ x.keys()
▶ x.values()
▶ x.items()
13. Control Flow: for loop
▶ Also compound statement
▶ Iterates over the elements of an iterable object
for <target> in <expression>:
suite
else:
suite
14. Control Flow: for loop (continuation)
colors = [“red”, “green”, “blue”, “orange”]
for color in colors:
print(color)
colors = [[1, “red”], [2, “green”], [3, “blue”], [4, “orange”]]
for i, color in colors:
print(i, “ ---> “, color)
15. Control Flow: for loop (continuation)
▶ Iterable is a container object able to return its elements one at a time
▶ Iterables use iterators to return their elements one at a time
▶ Iterator is an object that represents a stream of data
▶ Must implement two methods: iter and next (Iterator protocol)
▶ Raises StopIteration when elements are exhausted
▶ Lazy evaluation
16. Challenge
▶ Rewrite the following code using enumerate and the following list of colors:
[“red”, “green”, “blue”, “orange”] .
(hint: help(enumerate))
colors = [[1, “red”], [2, “green”], [3, “blue”], [4, “orange”]]
for i, color in colors:
print(i, “ ---> “, color)
17. Control Flow: for loop (continuation)
▶ range: represents a sequence of integers
▶ range(stop)
▶ range(start, stop)
▶ range(start, stop, step)
18. Control Flow: for loop (continuation)
colors = [“red”, “green”, “orange”, “blue”]
for color in colors:
print(color)
else:
print(“Done!”)
19. Control Flow: while loop
▶ Executes the suite of statements as long as the expression evaluates to True
while <expression>:
suite
else:
suite
20. Control Flow: while loop (continuation)
counter = 5
while counter > 0:
print(counter)
counter = counter - 1
counter = 5
while counter > 0:
print(counter)
counter = counter – 1
else:
print(“Done!”)
21. Challenge
▶ Rewrite the following code using a for loop and range:
counter = 5
while counter > 0:
print(counter)
counter = counter - 1
22. Control Flow: break and continue
▶ Can only occur nested in a for or while loop
▶ Change the normal flow of execution of a loop:
▶ break stops the loop
▶ continue skips to the next iteration
for i in range(10):
if i % 2 == 0:
continue
else:
print(i)
23. Control Flow: break and (continue)
colors = [“red”, “green”, “blue”, “purple”, “orange”]
for color in colors:
if len(color) > 5:
break
else:
print(color)
24. Challenge
▶ Rewrite the following code without the if statement (hint: use the step in range)
for i in range(10):
if i % 2 == 0:
continue
else:
print(i)
25. Reading material
▶ Data Model (Python Language Reference):
https://docs.python.org/3/reference/datamodel.html
▶ Theif statement (Python Language Reference):
https://docs.python.org/3/reference/compound_stmts.html#the-if-statement
▶ Thefor statement (Python Language Reference):
https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
▶ Thewhile statement (Python Language Reference):
https://docs.python.org/3/reference/compound_stmts.html#the-while-statement
26. More resources
▶ Python Tutorial: https://docs.python.org/3/tutorial/index.html
▶ Python Language Reference: https://docs.python.org/3/reference/index.html
▶ Slack channel: https://startcareerpython.slack.com/
▶ Start a Career with Python newsletter: https://www.startacareerwithpython.com/
▶ Book 15% off (NZ6SZFBL): https://www.createspace.com/6506874
27. set
▶ Unordered mutable collection of elements
▶ Doesn’t allow duplicate elements
▶ Elements must be hashable
▶ Useful to test membership
▶ x = set() # empty set
▶ x = {1, 2, 3} # set with 3 integers
▶ 2 in x # membership test
28. tuple
▶ x = 1,
▶ x = (1,)
▶ x = 1, 2, 3
▶ x = (1, 2, 3)
▶ x = (1, “Hello, world!”)
▶ You can also slice tuples
29. bytes
▶ Immutable sequence of bytes
▶ Each element is an ASCII character
▶ Integers greater than 127 must be properly escaped
▶ x = b”This is a bytes object”
▶ x = b’This is also a bytes object’
▶ x = b”””So is this”””
▶ x = b’’’or even this’’’