CS 2120: Topic 6¶
Videos for this week:¶
Correction
@ 6:40 in video 2, the return statement is not needed.
Reusing variables¶
Try this..
Consider this code:
a = 5
print(a)
b = 6
print(a)
a = a+b
print(a)
a = 3
a = a+1
print(a)
What is the value of the variable a at each of the print statements?
The point: we can reuse the same variable, reassigning it to a new value:
a = a + 1
The while loop¶
So far, if we want Python to do the same thing over and over, we have to tell it explicitly by repeating those instructions over and over.
Question: How do we automate this?
Answer: the
whilestatement.
The while statement
“While some condition is true, keep doing the code in the indented block”:
a = 1
while a < 11:
print(a)
a = a + 1
What is happening here?
Before the
whilestatement, we initialize the loop variableaThe
whilestatement is followed by a condition (any Boolean expression).. if the condition isTrue, the body of the loop gets executed, otherwise it gets skipped.
Question
What would happen if we didn’t have a=a+1?
Consider this code:
def dostuff(n): answer = 1 while n > 1: answer = answer * n n = n - 1 return answer
Tracing through code
What does the code above do? Trace through it, using pen and paper, for a few example values of n.
To trace, we can build a table of values.
Let’s trace
dostuff(4). We’ll look at the values ofnandanswerright after thewhilestatement.
n |
answer |
|---|---|
4 |
1 |
3 |
4 |
2 |
12 |
Side note: In Python, the pattern
a = a + 1can be written asa += 1.
Encapsulation¶
In the scope of the course, when we refer to
encapsulationwe are talking about putting some piece of code into a function.
Generalization¶
In the scope of the course, when we refer to
generalization, we are talking about making something more general (i.e.ninstead of5)
Example of Encapsulation
Consider this while loop:
while(i<5):
print(2*i)
i = i + 1
We can encapsulate it like this:
def print_multiples():
while(i<5):
print(2*i)
i = i + 1
Example of Generalization
Let’s generalize the previous function:
def print_multiples(n):
while(i<5):
print(n*i)
i = i + 1
For next class¶
Complete Activity 2 and submit it on OWL by the end of the week (Friday October 16 @ 11:59 PM)