Don't mean to crab, but the Newtonian would converge faster. :)
EDIT: stolen from elsewhere, 'cause I'm too lazy to code it myself right now.
n = norm.pdf
N = norm.cdf
def bs_price(cp_flag,S,K,T,r,v,q=0.0):
d1 = (log(S/K)+(r+v*v/2.)*T)/(v*sqrt(T))
d2 = d1-v*sqrt(T)
if cp_flag ==...