Se encontraron varias declaraciones al compilar una sola declaración [duplicar]

Esta pregunta ya tiene una respuesta aquí:

SyntaxError: se encontraron varias sentencias al compilar una sola sentencia 1 respuesta

Soy nuevo en programación. Estoy usando el libro Dive into Python e intento ejecutar el primer ejemplo, humansize.py. He copiado y pegado el código en Inactivo, el shell de Python y sigo presentando el mismo error de sintaxis: "varias declaraciones encontradas al compilar una sola declaración".

Estoy descargando el código en BBEdit y luego lo estoy copiando y pegando en Inactivo. He buscado en línea y la gente dijo que podría tratarse de un problema de tabulación frente a espacio. Pero he revisado el código y se ve idéntico al libro, incluso eliminé y reinserté 4 espacios en todas las líneas de código y aún obtengo el error.

Es frustrante porque estoy seguro de que es un problema simple, pero he hecho todo lo que sé (en términos de tratar de investigar el problema) para que funcione. Si se trata de un problema de espacio frente a tabulaciones, ¿alguno de ustedes sabe dónde puedo ir y aprender cómo hacer el proceso de copiar e ingresar el código en Inactivo correctamente? Soy un verdadero principiante.

Apreciaría cualquier ayuda de la comunidad. ¡Gracias!

Estoy ejecutando un Mac OSX - V.10.7.5. Estoy usando la última versión del libro Dive into Python y Python 3.3.

El código está abajo:

>>> '''Convert file sizes to human-readable form.

    Available functions:
    approximate_size(size, a_kilobyte_is_1024_bytes)
    takes a file size and returns a human-readable string

Examples:
>>> approximate_size(1024)
    '1.0 KiB'
>>> approximate_size(1000, False)
    '1.0 KB'

    '''

    SUFFIXES = {1000: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
            1024: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']}

    def approximate_size(size, a_kilobyte_is_1024_bytes=True):
    '''Convert a file size to human-readable form.

    Keyword arguments:
    size -- file size in bytes
    a_kilobyte_is_1024_bytes -- if True (default), use multiples of 1024
                                if False, use multiples of 1000

    Returns: string

    '''
    if size < 0:
        raise ValueError('number must be non-negative')

    multiple = 1024 if a_kilobyte_is_1024_bytes else 1000
    for suffix in SUFFIXES[multiple]:
        size /= multiple
        if size < multiple:
            return '{0:.1f} {1}'.format(size, suffix)

    raise ValueError('number too large')

    if __name__ == '__main__':
    print(approximate_size(1000000000000, False))
    print(approximate_size(1000000000000))

**SyntaxError: multiple statements found while compiling a single statement**
>>>