menu COMPSCI 2120/9642/DIGIHUM 2220 1.0 documentation

CS 2120: Topic 6

_images/thanksssgiving.png

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

_images/loops.jpeg
  • 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 while statement.

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 while statement, we initialize the loop variable a

    • The while statement is followed by a condition (any Boolean expression).. if the condition is True, 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 of n and answer right after the while statement.

n

answer

4

1

3

4

2

12

  • Side note: In Python, the pattern a = a + 1 can be written as a += 1.

Encapsulation

  • In the scope of the course, when we refer to encapsulation we 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. n instead of 5)

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

  • Read chapter 7 of the text

  • Complete Activity 2 and submit it on OWL by the end of the week (Friday October 16 @ 11:59 PM)