无需数理知识的二分法。
def sqrt(x):
if x<0:
return None
else:
if x<1:
low=0.0
high=1.0
else:
low = 1.0
high = x
mid = (low + high) / 2
last=low
while abs(last-mid)>0.00001:
if mid*mid<x:
low=mid
elif mid*mid>x:
high=mid
last=mid
mid = (low + high) / 2
return '%.4f' % mid