import sympy
import math
x=sympy.symbols("x")
yuan=input("请输入原函数:")
duishu=sympy.log(x)
a=float(input('请输入a的值='))
b=float(input('请输入b的值='))
k=1
yaoqiu=int(input('请输入采用第几种精度要求:'))
yibusen=float(input('精度为='))
N=(sympy.log(b-a)-sympy.log(yibusen))/sympy.log(2)
N=math.ceil(N)
while True:
X=(a+b)/2
h=(b-a)/2
fx=sympy.sympify(yuan).subs(x,X)
if yaoqiu == 1 :
if abs(fx)<yibusen:
print("二分次数%s\n零点x=%s\n函数值f(x)=%s\n"%(k,X,fx))
break
else:
if h<yibusen:
print("二分次数%s\n零点x=%s\n函数值f(x)=%s\n"%(k,X,fx))
break
fa=sympy.sympify(yuan).subs(x,a)
if fa*fx<0:
b=X
else:
a=X
if k>=N:
print("分半N0次还没有达到精度要求信息")
break
k+=1
输入案例