"""
 average4a.py

 Similar to average4.py in chap8 of Zelle.

 Jim Mahoney | cs.marlboro.college | Oct 2018 | MIT License
"""

def average(numbers):
    """ Return average of a list of numbers. 
        >>> average([1,2,3])
        2.0
    """
    return sum(numbers) / len(numbers)

def get_numbers():
    """ Return a list of floats input by the user. """
    numbers = []
    while True:
        user_string = input("Type a number (<return> to finish) : ")
        if user_string == "":
            return numbers
        try:
            number = float(user_string)
            numbers.append(number)
        except ValueError:
            print("Oops - that wasn't a number. Try again.")

def main():
    numbers = get_numbers()
    result = average(numbers)
    print("The average of {} is {}.".format(numbers, result))

if __name__ == '__main__':
    import doctest
    doctest.testmod()
    main()