Overview

Teaching: 5 min
Exercises: 5 min
Questions
  • How can I use software that other people have written?

  • How can I find out what that software does?

Objectives
  • Explain what software libraries are and why programmers create and use them.

  • Write programs that import and use libraries from Python’s standard library.

  • Find and read documentation for standard libraries interactively (in the interpreter) and online.

Most of the power of a programming language is in its libraries.

A program must import a library in order to use it.

import math

print('pi is', math.pi)
print('cos(pi) is', math.cos(math.pi))
pi is 3.141592653589793
cos(pi) is -1.0

Use help to find out more about a library’s contents.

help(math)
Help on module math:

NAME
    math

MODULE REFERENCE
    http://docs.python.org/3.5/library/math

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

DESCRIPTION
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

FUNCTIONS
    acos(...)
        acos(x)

        Return the arc cosine (measured in radians) of x.
⋮ ⋮ ⋮

Import specific items from a library to shorten programs.

from math import cos, pi

print('cos(pi) is', cos(pi))
cos(pi) is -1.0

Create an alias for a library when importing it to shorten programs.

import math as m

print('cos(pi) is', m.cos(m.pi))
cos(pi) is -1.0

Locating the Right Library

You want to select a random value from your data:

ids = [1, 2, 3, 4, 5, 6]
  1. What standard library would you most expect to help?
  2. Which function would you select from that library? Are there alternatives?

Exploring the Math Library

  1. What function from the math library can you use to calculate a square root without using sqrt?
  2. Since the library contains this function, why does sqrt exist?

When Is Help Available?

When a colleague of yours types help(math), Python reports an error:

NameError: name 'math' is not defined

What has your colleague forgotten to do?

Importing With Aliases

  1. Fill in the blanks so that the program below prints 90.0.
  2. Rewrite the program so that it uses import without as.
  3. Which form do you find easier to read?
import math as m
angle = ____.degrees(____.pi / 2)
print(____)

Importing Specific Items

  1. Fill in the blanks so that the program below prints 90.0.
  2. Do you find this easier to read than preceding versions?
  3. Why would’t programmers always use this form of import?
____ math import ____, ____
angle = degrees(pi / 2)
print(angle)

Key Points