Skip to main content
Engineering LibreTexts

16.16: Exercises

  • Page ID
    16911
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Exercise \(\PageIndex{1}\)

    Python provides a built-in function called len that returns the length of a string, so the value of len('allen') is 5.

    Write a function named right_justify that takes a string named s as a parameter and prints the string with enough leading spaces so that the last letter of the string is in column 70 of the display.

    >>> right_justify('allen')
                                                                     allen

    Exercise \(\PageIndex{2}\)

    A function object is a value you can assign to a variable or pass as an argument. For example, do_twice is a function that takes a function object as an argument and calls it twice:

    def do_twice(f):
        f()
        f()
    

    Here’s an example that uses do_twice to call a function named print_spam twice.

    def print_spam():
        print 'spam'
    
    do_twice(print_spam)
    
    1. Type this example into a script and test it.
    2. Modify do_twice so that it takes two arguments, a function object and a value, and calls the function twice, passing the value as an argument.
    3. Write a more general version of print_spam, called print_twice, that takes a string as a parameter and prints it twice.
    4. Use the modified version of do_twice to call print_twice twice, passing 'spam' as an argument.
    5. Define a new function called do_four that takes a function object and a value and calls the function four times, passing the value as a parameter. There should be only two statements in the body of this function, not four.
    Solution:

    http://thinkpython.com/code/do_four.py.

    Exercise \(\PageIndex{3}\)

    This exercise can be done using only the statements and other features we have learned so far.

    1. Write a function that draws a grid like the following:
      + - - - - + - - - - +
      |         |         |
      |         |         |
      |         |         |
      |         |         |
      + - - - - + - - - - +
      |         |         |
      |         |         |
      |         |         |
      |         |         |
      + - - - - + - - - - +
      

      Hint: to print more than one value on a line, you can print a comma-separated sequence:

      print '+', '-'
      

      If the sequence ends with a comma, Python leaves the line unfinished, so the value printed next appears on the same line.

      print '+', 
      print '-'
      

      The output of these statements is '+ -'.

      A print statement all by itself ends the current line and goes to the next line.

    2. Write a function that draws a similar grid with four rows and four columns.
    Solution:

    http://thinkpython.com/code/grid.py.

    Credit:

    Credit: This exercise is based on an exercise in Oualline, Practical C Programming, Third Edition, O’Reilly Media, 1997.


    This page titled 16.16: Exercises is shared under a CC BY-NC-SA 3.0 license and was authored, remixed, and/or curated by Allen B. Downey (Green Tea Press) .

    • Was this article helpful?