Lecture 11 - Exercises

11A - Docstrings, Preconditions, Postconditions

  1. Which of the following belongs in a function’s docstring? List all that apply.

    1. Preconditions
    2. Postconditions
    3. The steps the function takes to accomplish its task
    4. Information about side-effects the function has
    5. Information about the meaning of the arguments passed to the function
  2. Consider the following function:

    1. Which of the following should be included in the docstring? List all that apply.
      1. The function prints the square of each number from 1 through n

      2. The function uses a while loop

      3. The function returns the square of n

      4. The function returns the square of i

      5. The function uses a counter variable called i

    2. Even with the correct subset of the above, the function could result in an error. Write a precondition that can be included such that as long as the precondition is satisfied, the function cannot cause an error.

11B - Parameters, Local Variables, and Scope

  1. Consider the following program, noticing that several points in the code are marked with comments (e.g., M1). Important: the markers refer to the lines they’re on, not the lines following them.

    1. In which lines (among M1 through M5) is v2 in scope? List all that apply.
    2. In which lines (among M1 through M5) is v3 in scope? List all that apply.
  2. Consider the following program:

    Which of the following could replace the last line of the program and leave its behavior unchanged? List all that apply.

    1. print(h*w)

    2. print(width * height)

    3. print(w * h)

    4. print_rectangle_area(h, w)

  3. What does the following program print?

  4. What does the following program print?

Problems

There are no new Problems for today - continue the Peer Review process from last class if you need more time to finish, then work on the Problems from L10.