core elements
DESCRIPTION
Core Elements. Part iii: Iterations. Overview. Tuples Mutable, Immutable object For Loops While Loops. Lists in Python. Lists are mutable objects, e.g. we can modify their contents. Code. >>> my_list = [1, 10, 4, 5 ] # List creation [ ] >>> my_list [2 ] # Accessing the third element - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/1.jpg)
Lilian BlotLilian Blot
PART I I I : ITERATIONS
Core Elements
Autumn 2012TPOP
1
![Page 2: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/2.jpg)
Lilian Blot
Overview
Tuples
Mutable, Immutable object
For Loops
While Loops
Autumn 2012TPOP
2
![Page 3: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/3.jpg)
Lilian Blot
Lists in Python
Lists are mutable objects, e.g. we can modify their contents.
Autumn 2012TPOP
3
>>> my_list = [1, 10, 4, 5] # List creation [ ]>>> my_list[2] # Accessing the third element4>>> my_list[1, 10, 4, 5]>>> my_list[2] = 9 # Modifying the third element>>> my_list # The modified list[1, 10, 9, 5]>>>
Code
![Page 4: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/4.jpg)
Lilian Blot
Tuples in Python
Tuples are immutable objects, e.g. we CANNOT modify their contents.
Autumn 2012TPOP
4
>>> my_tuple = (1, 10, 4, 5) # tuple creation ( ,)>>> my_tuple[2] # Accessing the third element4>>> my_tuple (1, 10, 4, 5)>>> my_tuple[2] = 9 # Modifying the third element
Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> my_tuple [2] = 9TypeError: 'tuple' object does not support item assignment >>>
Code
![Page 5: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/5.jpg)
Lilian Blot
Tuples in Python
Tuples are immutable objects, e.g. we CANNOT modify their contents.
Note that numbers and strings are immutable too.
Autumn 2012TPOP
5
>>> my_t = (1, 10, 4, 5) # tuple creation ( ,)>>> my_t = my_t(:2) + (9,) + my_t(3:) # Modifying the third element>>> my_t(1, 10, 9, 5)
Code
![Page 6: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/6.jpg)
Lilian Blot
Be Careful
Example:
Autumn 2012TPOP
6
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>> lst1[2, 4, 6, 8]>>> lst2[2, 4, 6, 8]>>> t1(1, 3, 7, 9)>>> t2(1, 3, 7, 9)>>>
Code
![Page 7: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/7.jpg)
Lilian Blot
Be Careful
Example:
Autumn 2012TPOP
7
>>> t2 = t2[:2] + (5, ) + t2[3:] # Modifying the third element t2>>> lst2[2] = 5 # Modifying the third element of lst2>>> t1(1, 3, 7, 9)>>> t2(1, 3, 5, 9)>>>
Code
A change in t2 does not affect t1
![Page 8: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/8.jpg)
Lilian Blot
Be Careful
Example:
Autumn 2012TPOP
8
>>> t2 = t2[:2] + (5, ) + t2[3:] # Modifying the third element t2>>> lst2[2] = 5 # Modifying the third element of lst2>>> t1(1, 3, 7, 9)>>> t2(1, 3, 5, 9)>>> lst1[2, 4, 5, 8]>>> lst2[2, 4, 5, 8]>>>
Code
A change in t2 does not affect t1
A change in lst2 does affect lst1
![Page 9: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/9.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
9
>>> lst1 = lst2 = [2,4,6,8]>>>
Code
lst1
lst2
0 1 2 3
2 4 6 8
![Page 10: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/10.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
10
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>>
Code
t1
t2
lst1
lst2 0 1 2 3
1 3 7 9
0 1 2 3
2 4 6 8
![Page 11: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/11.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
11
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>> t2 = t2[:2] + (5, ) + t2[3:]>>>
Code
t1
t2
lst1
lst2 0 1 2 3
1 3 7 9
0 1 2 3
2 4 6 8
0 1 2 3
1 3 5 9
![Page 12: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/12.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
12
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>> t2 = t2[:2] + (5, ) + t2[3:]>>> lst2[2] = 5>>>
Code
t1
t2
lst1
lst2 0 1 2 3
1 3 7 9
0 1 2 3
2 4 6 8
0 1 2 3
1 3 5 9
5
![Page 13: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/13.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
13
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>> t2 = t2[:2] + (5, ) + t2[3:]>>> lst2[2] = 5>>> >>> lst2 = [2, 4, 5, 8]>>>
Code
t1
t2
lst1
lst2 0 1 2 3
1 3 7 9
0 1 2 3
2 4 5 8
0 1 2 3
1 3 5 9
0 1 2 3
2 4 5 8
![Page 14: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/14.jpg)
Lilian Blot
Be Careful
State Diagram:
Autumn 2012TPOP
14
>>> lst1 = lst2 = [2,4,6,8]>>> t1 = t2 = (1,3,7,9)>>> t2 = t2[:2] + (5, ) + t2[3:]>>> lst2[2] = 5>>> >>> lst2 = [2, 4, 5, 8]>>> lst2[2] = 0
Code
t1
t2
lst1
lst2 0 1 2 3
1 3 7 9
0 1 2 3
2 4 5 8
0 1 2 3
1 3 5 9
0 1 2 3
2 4 5 80
![Page 15: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/15.jpg)
Lilian Blot
Swapping Values
State Diagram:
Autumn 2012TPOP
15
>>> num_one = 5>>> num_two = 9>>>
Code
num_two
num_one
5
9
![Page 16: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/16.jpg)
Lilian Blot
Swapping Values
State Diagram: First Attempt
Autumn 2012TPOP
16
>>> num_one = 5>>> num_two = 9>>> num_one = num_two>>> num_two = num_one>>>
Code
num_two
num_one
5
9
![Page 17: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/17.jpg)
Lilian Blot
Swapping Values
State Diagram: Second Attempt
Autumn 2012TPOP
17
>>> num_one = 5>>> num_two = 9>>> temp = num_two>>> num_two = num_one>>> num_one = temp>>>
Code
num_two
num_one
temp
5
9
![Page 18: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/18.jpg)
Lilian BlotLilian Blot
DEFINITE&
INDEFINITE LOOPS
Iteration
Autumn 2012TPOP
18
![Page 19: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/19.jpg)
Lilian Blot
Iteration
We need a structure to execute a sequence of statements multiple times in succession
So Far, we have to write the sequence of statement n times to achieve n repetition
How can we proceed if we are not sure how many times it needs to be repeated?
Autumn 2012TPOP
19
![Page 20: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/20.jpg)
Lilian Blot
Definite Loop: For statement
The simplest kind of loop
It will execute a definite amount of times
The for loop statementfor <var> in <iterable>: <body>
Iterable can return its element one at a time
The body of the loop can be any sequence of Python statements
The variable after the keyword for is called the loop index.
Autumn 2012TPOP
20
![Page 21: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/21.jpg)
Lilian Blot
Example
Autumn 2012TPOP
21
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print "--> inside loop: square of", str(val), "is", str(square_val)
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4--> inside loop: square of 3 is 9After the for loop
Python shell
![Page 22: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/22.jpg)
Lilian Blot
Example
Autumn 2012TPOP
22
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Python shell
![Page 23: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/23.jpg)
Lilian Blot
Example
Autumn 2012TPOP
23
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop
Python shell
1 2 3
val
![Page 24: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/24.jpg)
Lilian Blot
Example
Autumn 2012TPOP
24
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop
Python shell
1 2 3
1
valsquare_val
![Page 25: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/25.jpg)
Lilian Blot
Example
Autumn 2012TPOP
25
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1
Python shell
1 2 3
1
valsquare_val
![Page 26: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/26.jpg)
Lilian Blot
Example
Autumn 2012TPOP
26
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1
Python shell
1 2 3
1
valsquare_val
![Page 27: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/27.jpg)
Lilian Blot
Example
Autumn 2012TPOP
27
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1
Python shell
2 3
4
valsquare_val
![Page 28: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/28.jpg)
Lilian Blot
Example
Autumn 2012TPOP
28
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4
Python shell
2 3
4
valsquare_val
![Page 29: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/29.jpg)
Lilian Blot
Example
Autumn 2012TPOP
29
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4
Python shell
2 3
4
valsquare_val
![Page 30: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/30.jpg)
Lilian Blot
Example
Autumn 2012TPOP
30
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4
Python shell
3
9
valsquare_val
![Page 31: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/31.jpg)
Lilian Blot
Example
Autumn 2012TPOP
31
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4--> inside loop: square of 3 is 9
Python shell
3
9
valsquare_val
![Page 32: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/32.jpg)
Lilian Blot
Example
Autumn 2012TPOP
32
print "Before the for loop"
for val in [1,2,3]: square_val = val * val print . . .
print "After the for loop"
Code
Before the for loop--> inside loop: square of 1 is 1--> inside loop: square of 2 is 4--> inside loop: square of 3 is 9After the for loop
Python shell
3
9
valsquare_val
![Page 33: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/33.jpg)
Lilian Blot
Indefinite Loop: While Statement
An indefinite loop keeps iterating until certain condition are met (conditional loop)
There is no guarantee ahead of time regarding how many times the loop will go around zero time x-times indefinitely
Autumn 2012TPOP
33
![Page 34: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/34.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
34
<condition>
<body>
False
True
![Page 35: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/35.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
35
<condition>
<body>
False
True
![Page 36: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/36.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
36
<condition>
<body>
False
True
![Page 37: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/37.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
37
<condition>
<body>
False
True
![Page 38: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/38.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
38
<condition>
<body>
False
True
![Page 39: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/39.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
39
<condition>
<body>
False
True
![Page 40: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/40.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
40
<condition>
<body>
False
True
![Page 41: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/41.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
41
<condition>
<body>
False
True
![Page 42: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/42.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
42
<condition>
<body>
False
True
![Page 43: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/43.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
43
<condition>
<body>
False
True
![Page 44: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/44.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
44
<condition>
<body>
False
True
![Page 45: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/45.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
45
<condition>
<body>
False
True
![Page 46: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/46.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
46
<condition>
<body>
False
True
![Page 47: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/47.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
47
<condition>
<body>
False
True
![Page 48: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/48.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
Autumn 2012TPOP
48
<condition>
<body>
False
True
![Page 49: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/49.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
The <body> usually contains statements that modify the evaluation of <condition> at some point
Autumn 2012TPOP
49
<condition>
<body>
False
True
![Page 50: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/50.jpg)
Lilian Blot
Indefinite Loop: While Statement
The while loop statementwhile <condition>: <body>
The <body> usually contains statements that modify the evaluation of <condition> at some point
The <body> may never be executed!
Autumn 2012TPOP
50
<condition>
<body>
False
True
![Page 51: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/51.jpg)
Lilian Blot
General Form
The while loop general form Two new Keywords:
1. break 2. continue
while <condition>: <statements K> if<test A>: break if<test B>: continue <statements M>
Autumn 2012TPOP
51
<condition>
<statements K>
False
True
if<test A>: break if<test B>: continue <statements M>
![Page 52: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/52.jpg)
Lilian Blot
General Form
The while loop general form Two new Keywords:
1. break 2. continue
while <condition>: <statements K> if<test A>: break if<test B>: continue <statements M>
Test A is True
Autumn 2012TPOP
52
<condition>
<statements K>
False
True
if<test A>: break if<test B>: continue <statements M>
![Page 53: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/53.jpg)
Lilian Blot
General Form
The while loop general form Two new Keywords:
1. break 2. continue
while <condition>: <statements K> if<test A>: break if<test B>: continue <statements M>
Test A is False & Test B is True
Autumn 2012TPOP
53
<condition>
<statements K>
False
True
if<test A>: break if<test B>: continue <statements M>
![Page 54: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/54.jpg)
Lilian Blot
General Form
The for loop general form
for <val> in <iterable>: <statements K> if<test A>: break if<test B>: continue <statements M>
Autumn 2012TPOP
54
![Page 55: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/55.jpg)
Lilian Blot
Summary
We have seen mutable and immutable data type consequences when modifying data
Definite iteration for loops
Indefinite iteration (conditional loop) while loops
General form using break and continue
Autumn 2012TPOP
55
![Page 56: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/56.jpg)
Lilian Blot
Exercises
Consider a problem where we want to record and store the marks of many students, each students having more than one mark (several modules with same credits). what form the data structure would look like how would you write a program to enter the marks of
one student how would you proceed to enter the marks of more
than one students how would you calculate the average mark of each
student what if modules don’t have the same credits (e.g. 10,
20, 30)Autumn 2012TPOP
56
![Page 57: Core Elements](https://reader036.vdocuments.site/reader036/viewer/2022062301/56814348550346895dafc087/html5/thumbnails/57.jpg)
Lilian Blot
Exercises
Calculate the average of values in a list
Calculate the average of values entered by a user, we don’t know how many values the user want to enter. The user should enter an empty value to signal the end of data input, then a result must be returned.
Autumn 2012TPOP
57