Continued fraction expansion is a simple way to approximate common trigonometry functions to a relatively high precision. In this example we only look at sin and cosine. The results compare well with the results of high precision packages like SymPy. The Python module decimal is used to achieve the high precision.

Comments
good use of modules
You catched the hint
# approximate sin and cos using continued fraction expansion
# and module decimal to set higher precision
# convergence cutoff = 5 gives module math precision
# tested with Python27  by  vegaseat

import decimal as dc
# for comparison
import math
try:
    from sympy.mpmath import *
    # set precision
    mp.dps = 60
    print(type(sin(0.5)))
    print(sin(0.5))
    print(cos(0.5))
    print('-'*62)
except:
    print("Install module SymPy from http://code.google.com/p/sympy")

def cont_fraction(r, cutoff=5):
    """
    continued fraction expansion
    higher convergence cutoff gives higher precision
    but of course makes the approximation slower
    """
    t = dc.Decimal(4)*cutoff + 2
    for k in range(cutoff, 0, -1):
        t = 4*k - 2 + dc.Decimal(r)/t
    return t

def get_sin(x, cutoff=5):
    """returns an approximation of math.sin(x)"""
    r = dc.Decimal(-x)*dc.Decimal(x)
    s = cont_fraction(r, cutoff)
    return 2*dc.Decimal(x)*s/(s*s - r)

def get_cos(x, cutoff=5):
    """returns an approximation of math.cos(x)"""
    r = dc.Decimal(-x)*dc.Decimal(x)
    s = cont_fraction(r, cutoff)
    return (s*s + r)/(s*s - r)

# set decimal precision
dc.getcontext().prec = 60

# x is angle in radians
x = 0.5

print(type(get_sin(x)))
print(get_sin(x, 20))
print(math.sin(x))
# and some cosine approximations different cutoff values
print('-'*62)
print(get_cos(x, 15))
print(get_cos(x, 20))
print(get_cos(x, 25))
print(math.cos(x))

'''
<class 'sympy.mpmath.ctx_mp_python.mpf'>
0.479425538604203000273287935215571388081803367940600675188617
0.877582561890372716116281582603829651991645197109744052997611
--------------------------------------------------------------
<class 'decimal.Decimal'>
0.479425538604203000273287935215571388081803367940600675188618
0.479425538604
--------------------------------------------------------------
0.877582561890372716116281582603829651991645197109744053008284
0.877582561890372716116281582603829651991645197109744052997610
0.877582561890372716116281582603829651991645197109744052997610
0.87758256189
'''
The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.