Libraries

Overview

Teaching: 10 min
Exercises: 10 min
Questions
  • How can I use Python’s standard libraries?

  • Where do I find documentation on Python’s standard libraries?

Objectives
  • Use import to load entire libraries and elements of libraries.

  • Use import to load libraries under aliases.

  • Use elements of libraries via dot notation.

  • Use the math and random libraries.

  • Use the csv library to read CSV files.

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 from python script

Supposed you have python script namely module1.py. Inside that script there is function namely function1(x, y) and function2(x, y). You want to use it in another script. So here is to to import if that module1.py in the same directory.

from module1 import function1, function2

If the location of module1.py outside the current directory, we need to import sys first and append the location. For example the location of module1.py is in ../A2

import sys
sys.append('../A2')
from module2 import function3, function4

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

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?

Locating the Right Library

You want to select a random character from a string:

bases = 'ACTTGCTTGAC'
  1. What standard library would you most expect to help?
  2. Which function would you select from that library? Are there alternatives?

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)

Checking Random Numbers

Look up the documentation for the random library, then write a short program that generates a large number of samples from the normal distribution with mean 0.0 and standard deviation 1.0 and see how close the sample average comes to 0.0.

Reading Comma-Separated Values

Look up the documentation for the csv library and use it to read a file containing tabular data in comma-separated values (CSV) format. Why would you use a library like this rather than just reading lines and splitting on the commas?

Key Points

  • Use import to load a library.

  • Use dot notation to get library’s contents.

  • The math library has common mathematical functions.

  • The random library produces pseudo-random numbers.

  • The csv library can read CSV files correctly.