在 Python 上编写计算器

Coding a Calculator on Python

所以我正在尝试编写一个以 5 位数字运算的计算器,然后检查它的间隔。这是代码:

def CR5(x):
  x=float('%s' % float('%.5g' % x))
  x="{:.4e}".format(x)
  return x

这似乎工作正常,除了答案是字符串形式,但在这个阶段这不是问题。但是,当我尝试检查间隔时,我得到了这个:

代码:

def interval(x):
   x=float(CR5(x))
   a=x-1
   b=x+1
   while float(CR5(a))!= x:
       a=float(CR5((a+x)/2))
   while float(CR5(b))!= x:
       b=float(CR5((b+x)/2))
   return a, b

结果如果 x == 4:

(4.0, 4.0)

我正在尝试获取 (3.9999, 4.0001)

知道我做错了什么吗?谢谢!

你是 运行 while 循环直到 ax 变得相等,而你实际上正在寻找等于 [=15= 的中间值].你应该这样写循环:

while float(CR5((a+x)/2.0))!= x:

while float(CR5((b+x)/2.0))!= x:

x=4 的结果:

(3.9999, 4.0001)