Skip to main content

Section 7.6 Looping and counting

The following program counts the number of times the letter “r” appears in a string:
This program demonstrates another pattern of computation called a counter. The variable count is initialized to 0 and then incremented each time an “r” is found. When the loop exits, count contains the result: the total number of r's.

Checkpoint 7.6.1.

    11-9-2: What is printed by the following:
    s = "peanut butter"
    count = 0
    for char in s:
        if char == "t":
              count = count + 1
    print(count)
    
  • 0
  • Incorrect! count is initialized to 0, but is then incremented by the for loop. Try again.
  • 3
  • Correct! The letter t appears 3 times in "peanut butter".
  • 4
  • Incorrect! The value of count is initially 0, not 1. Try again.
  • Nothing, this is an infinite loop
  • Incorrect! This for loop will eventually terminate because string s has a finite number of characters. Try again.

Checkpoint 7.6.2.

Solution.
In line 2, lettercount should be initialized to 0. In line 4, there should be a ==, not a =. In line 5, the variable name should be changed to lettercount. In line 6, the return statement should be indented.
def count(text, aChar):
    lettercount = 0
    for c in text:
        if c == aChar:
            lettercount = lettercount + 1
    return lettercount
In line 2, lettercount should be initialized to 0. In line 4, there should be a ==, not a =. In line 5, the variable name should be changed to lettercount. In line 6, the return statement should be indented.